Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 20667|Respuesta: 0

[ASP.NET] Solicitud GET "HTTP Error 400. La URL de la solicitud es inválida"

[Copiar enlace]
Publicado en 4/7/2018 9:53:58 | | | |


Al ver esta desinformación, el desarrollador medio puede suponer dos razones

1. Hay caracteres especiales en el enlace

2. La longitud del enlace es demasiado larga(Parece que la longitud no es la culpa, es vaga, se me olvidó)

La dirección de la imagen de error es la siguiente: http://{host}/SearchService. svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J%C2% A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ%C2%A72D8GBlPbIVJuhSFU5GA8116z8FkV4%C2% A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99

A continuación, comenzamos a investigar las causas de los errores que podíamos encontrar

1. Comprueba la URL, no hay caracteres especiales (excepto esta razón)

2. La URL parece muy larga a primera vista, así que borremos la mitad de la longitud del parámetro y luego solicitámosla. El resultado es que puede tener éxito y, añadiendo caracteres constantemente, se descubre que la longitud supera 339 y se reporta este error, y no hay caracteres especiales después de 339, por lo queBásicamente determinamos que la causa del error debería ser que la URL es demasiado larga

El siguiente paso es resolver los problemas relevantes

Luego hay varios Baidu, comprueba la configuración relacionada con la modificación del límite de longitud de la cadena de consultas

Luego modifica el web.config

1. Modificar las configuraciones maxQueryStringLength y maxRequestLength bajo el nodo httpRuntime

2. Modificar el nodo system.webServer de la siguiente manera

Guardando y ejecutando con anticipación, los errores siguen siendo los mismos, y parece que no sirve de nada

En ese momento, empecé a preguntarme, ¿por qué no, no entraría en vigor? Pensando que puede haber muchas personas como yo, pensando en el contexto global de IIS, si no se anularía este ajuste, seguiremos usando todos los valores de conjunto

No adivines, simplemente échale un vistazo (ten en cuenta que el filtering de requestFiltering que compruebas está en system.webServer, no mires el nodo equivocado)

Si está desactivado, el valor de overrideModeDefault es Deny, lo que significa que nuestra configuración se basará en la configuración específica de nuestro sitio.

Así que todo está normal, ¿por qué es un error?

Por fin, una reversión que no fue adoptada en stackoverflow llamó mi atención

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



A grandes rasgos, la solicitud aún no ha llegado a IIS y es cancelada por el sistema operativo.

En ese momento, busqué otro artículo en Google, que enlazaba con el soporte técnico de radio óptica de Microsoft

La dirección es la siguientehttps://support.microsoft.com/zh ... ettings-for-windows

La esencia de los dos artículos es que necesitamos modificar el registro, y probablemente los dos artículos se modifiquen con los siguientes dos valores del registro



Después, pruébalo y ve al CMD="regedit="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

Haz clic derecho en el área en blanco y selecciona el valor Dword, como se muestra en la imagen



Crea un nuevo nombre llamado UrlSegmentMaxLength, pon el valor en 2048 y haz clic en OK



La configuración de UrlSegmentMaxCount es la misma que la anterior, el valor también es Dword 2048, haz clic en OK.

La modificación solo puede entrar en vigor si se reinicia el servicio HTTP

  • Haz clic en Iniciar, escribe Cmd y luego haz clic en OK.
  • En el símbolo del prompt, escribe net stop http y pulsa Enter.
  • En el símbolo de comandos, escribe net start http y pulsa Enter.


Luego reinicia IIS. Inténtalo de nuevo, vale, sin error, solución perfecta





Anterior:El tipo "Objeto" se define en un ensamblador sin referencia. Debe añadir una respuesta al programa...
Próximo:Práctica de la aplicación Android para desarrollo de Ionic (4): Posicionamiento de la API de Baidu Map
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com