Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 20667|Répondre: 0

[ASP.NET] Requête GET « HTTP Error 400. L’URL de la requête est invalide »

[Copié le lien]
Publié sur 04/07/2018 09:53:58 | | | |


En voyant cette désinformation, le développeur moyen peut deviner deux raisons

1. Il y a des caractères spéciaux dans le lien

2. La longueur du lien est trop longue(Il semble que la longueur ne soit pas la faute, elle est vague, j’ai oublié)

L’adresse de l’image d’erreur est la suivante : http://{host}/SearchService. svc/rest/pic600x320/png/kv3hcxmnCmISVvFKojNBGpkN44MRx71vV4v7Qu7ikclbic2vX5Axnm8RxwhLoWyehsSz4J %C2 % A72F6h4eQgvkrbzuKGR6y7sszK1KUY75RqxylZMumapwVQttfllaSPXwoRGEeVexDqjmMZSERPquL3uLZbv6Vxdx52nRDUW90SVVYeqkHZbx2w3T1coqt2v036tfaZ %C2 %A72D8GBlPbIVJuhSFU5GA8116z8FkV4 %C2 % A72kDtsxSXy9XTFIziTToRpbQEkp7497O6q99

Ensuite, nous avons commencé à étudier les raisons des erreurs que nous pouvions rencontrer

1. Vérifiez l’URL, il n’y a pas de caractères spéciaux (sauf pour cette raison)

2. L’URL paraît très longue à première vue, donc supprimons la moitié de la longueur du paramètre puis la demandons. Le résultat est que cela peut réussir, et en ajoutant constamment des caractères, on constate que la longueur dépasse 339 et signale cette erreur, et il n’y a pas de caractères spéciaux après 339, doncNous avons essentiellement déterminé que la cause de l’erreur devait être que l’URL est trop longue

L’étape suivante consiste à résoudre les problèmes pertinents

Ensuite, il y a plusieurs Baidu, vérifiez la configuration liée à la modification de la limite de longueur de la chaîne de requêtes

Ensuite, modifier le site web.config

1. Modifier les configurations maxQueryStringLength et maxRequestLength sous le nœud httpRuntime

2. Modifier le nœud system.webServer comme suit

En enregistrant et en courant avec anticipation, les erreurs restent les mêmes, et il semble que cela ne serve à rien

À ce moment-là, j’ai commencé à me demander pourquoi pas, ne s’appliquerait-il pas, pensant qu’il y a peut-être beaucoup de gens comme moi qui pensent au cadre global de l’IIS, si ce paramètre ne serait pas supplanté, nous utilisons toujours toutes les valeurs de l’ensemble

Ne devine pas, vérifie simplement (notez que le requestFiltering que vous vérifiez se trouve sous system.webServer, ne regardez pas le mauvais nœud)

Si elle est désactivée, la valeur d’overrideModeDefault est Deny, ce qui signifie que notre configuration sera basée sur la configuration spécifique de notre site.

Donc tout est normal, pourquoi est-ce une erreur ?!

Enfin, une version revert qui n’a pas été adoptée sur stackoverflow a attiré mon attention

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



En gros, la requête n’a pas encore atteint IIS et est supprimée par le système d’exploitation.

À ce moment-là, j’ai cherché un autre article sur Google, qui renvoie au support technique de la radio optique de Microsoft

L’adresse est la suivantehttps://support.microsoft.com/zh ... ettings-for-windows

L’essentiel des deux articles est que nous devons modifier le registre, et les deux articles sont probablement modifiés par les deux valeurs suivantes du registre



Ensuite, essayez et allez dans le registre CMD="regedit="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

Faites un clic droit sur la zone vierge et sélectionnez la valeur Dword, comme illustré sur l’image



Créez un nouveau nom appelé UrlSegmentMaxLength, mettez la valeur à 2048, puis cliquez sur OK



Le réglage d’UrlSegmentMaxCount est le même que ci-dessus, la valeur est aussi Dword 2048, cliquez sur OK.

La modification ne peut prendre effet que si le service HTTP est relancé

  • Cliquez sur Démarrer, tapez Cmd, puis cliquez sur OK.
  • À l’invite de commande, tapez net stop http et appuyez sur Entrée.
  • À l’invite de commande, tapez net start http et appuyez sur Entrée.


Puis redémarrer IIS. Réessaie, d’accord, pas d’erreur, solution parfaite





Précédent:Le type « Objet » est défini dans un assembleur non référencé. Il faut ajouter une réponse au programme...
Prochain:Pratique de développement Ionic pour l’application Android (4) : Positionnement de l’API de la carte Baidu
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com