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
|