我正在使用IIS7.5的ARR和ISAPI。 每当转发包含特定字符的URL时: 发生400错误请求。 我该如何解决?
我想ARR和ISAPI没有问题,因为开发服务器没有问题(与运行服务器相同的Env)只会出现在操作服务器中。
答案 0 :(得分:2)
默认情况下,IIS 7.5会拒绝路径中的某些字符 - 默认为以逗号分隔的列表:<,>,*,%,&,:,\\
。如果请求命中该列表,它将返回http 400错误,因为在配置服务器的情况下请求是错误的。有一点背景,请参阅此blog post和this MSDN page。具体来说,您可能希望将httpRuntime配置更新为:
<httpRuntime requestValidationMode="2.0"
requestPathInvalidCharacters="<,>,*,%,&,\"
/>
答案 1 :(得分:1)
{URL}中仅允许:
字符作为IPv6地址的一部分。要么将其编码为%3A
,要么不要使用它。
您可以在RFC3986
中找到参考