IIS 8.5 400错误的请求 - 无效的URL
问题描述:
我有要求,这样的网址: https://xxx/test/%81IIS 8.5 400错误的请求 - 无效的URL
这导致400错误的请求 - 无效的URL
我试着在web.config中设置:
<httpRuntime requestValidationMode="2.0" relaxedUrlToFileSystemMapping="true" requestPathInvalidCharacters=""/>
但它没有帮助。
我还试图用自定义的请求验证:
<httpRuntime requestValidationType="MyNamespace.CustomRequestValidation"/>
但IIS使用自定义的验证之前返回400。
我还能做些什么来让IIS接受这个URL?
谢谢。
答
根据 https://www.iis.net/learn/troubleshoot/diagnosing-http-errors/troubleshooting-http-400-errors-in-iis HTTP 400的潜在问题是,客户端已发送到IIS,打破该的HTTP.sys被执行一个或多个规则的请求。
的Http.sys的Windows注册表设置在这里dercribed: https://support.microsoft.com/en-us/kb/820129
所以,在我的情况下,问题是由设置在HKEY_LOCAL_MACHINE \ SYSTEM这些键解决\ CURRENTCONTROLSET \ SERVICES \ HTTP \参数为IIS机器:
AllowRestrictedChars = 1
EnableNonUTF8 = 1
在将这些更改应用到注册表后,IIS机器必须重新启动