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机器必须重新启动