Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 20667|Resposta: 0

[ASP.NET] Solicitação GET "HTTP Erro 400. A URL do pedido é inválida"

[Copiar link]
Publicado em 04/07/2018 09:53:58 | | | |


Vendo essa desinformação, o desenvolvedor médio pode supor dois motivos

1. Há caracteres especiais no link

2. O comprimento do link é muito longo(Parece que o comprimento não é a culpa, é vago, esqueci)

O endereço da imagem de erro é o seguinte: http://{host}/SearchService. svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J%C2% A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ%C2%A72D8GBlPbIVJuhSFU5GA8116z8FkV4%C2% A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99

Em seguida, começamos a investigar as razões para os erros que poderíamos encontrar

1. Verifique a URL, não há caracteres especiais (excluindo esse motivo)

2. A URL parece muito longa à primeira vista, então vamos deletar metade do comprimento do parâmetro e depois solicitá-lo. O resultado é que pode ser bem-sucedido, e então, ao adicionar caracteres constantemente, verifica-se que o comprimento excede 339 e esse erro é reportado, e não há caracteres especiais após 339, entãoBasicamente, determinamos que a causa do erro deveria ser que a URL está muito longa

O próximo passo é resolver os problemas relevantes

Depois, há vários Baidu, verifique a configuração relacionada à modificação do limite de comprimento da sequência de consulta

Depois, modificar o site web.config

1. Modificar as configurações maxQueryStringLength e maxRequestLength sob o nó httpRuntime

2. Modificar o nó system.webServer da seguinte forma

Salvando e rodando com expectativa, os erros continuam os mesmos, e parece que não adianta

Nesse momento, comecei a me perguntar, por que não, não entraria em vigor, pensando que talvez haja muitas pessoas como eu, pensando no cenário global do IIS, se essa configuração não seria anulada? Ainda usamos todos os valores de conjunto

Não chute, apenas confira (note que o requestFiltering que você verifica está localizado em system.webServer, não olhe para o nó errado)

Se estiver desligado, o valor de overrideModeDefault é Deny, o que significa que nossa configuração será baseada na configuração específica do nosso site.

Então está tudo normal, por que isso é um erro?!

Finalmente, um revert que não foi adotado no stackoverflow chamou minha atenção

linkhttps://stackoverflow.com/questi ... is-invalid-in-iis-7



De forma geral, a solicitação ainda não chegou ao IIS e é cancelada pelo sistema operacional.

Nesse momento, procurei outro artigo no Google, que ligava ao suporte técnico de rádio óptico da Microsoft

O endereço é o seguintehttps://support.microsoft.com/zh ... ettings-for-windows

A essência dos dois artigos é que precisamos modificar o registro, e os dois artigos provavelmente são modificados pelos dois valores seguintes do registro



Depois, tente e vá para o registro CMD="regedit="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

Clique com o botão direito na área em branco e selecione o valor Dword, como mostrado na imagem



Crie um novo nome chamado UrlSegmentMaxLength, defina o valor para 2048 e clique em OK



A configuração do UrlSegmentMaxCount é a mesma que acima, o valor também é Dword 2048, clique em OK.

A modificação só pode entrar em vigor se o serviço HTTP for reiniciado

  • Clique em Iniciar, digite Cmd e depois clique em OK.
  • No prompt de comando, digite net stop http e pressione Enter.
  • No prompt de comando, digite net start http e pressione Enter.


Então reinicie o IIS. Tente de novo, ok, sem erro, solução perfeita





Anterior:O tipo "Objecto" é definido em uma montagem sem referência. Preciso adicionar uma resposta ao programa...
Próximo:Prática de Desenvolvimento Ionic para Android (4): Posicionamento da API do Baidu Map
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com