3

我发现 IIS7、7.5 和 8(也可能是以前的版本)在遇到任何包含%09不属于查询字符串的 URL 时会快速失败。

StackOverflow 本身表现出相同的行为,请注意:

http://www.stackoverflow.com/questions/%09

这对我的应用程序来说很烦人,因为我已经构建了一个 Web 服务,它应该text/xml为每个请求(甚至是无效请求)返回,其中包含包含错误代码的特定 XML 文档格式。我发现一些 web 服务客户端将%09(通常由用户复制和粘贴)传递给我的服务,但我的服务器返回一个丑陋的 HTML 响应,似乎硬编码到 HTTP.SYS 中(我覆盖了 HTTP 400 错误响应IIS,但它没有效果)。

错误请求 - 无效的 URL

HTTP 错误 400。请求 URL 无效。

有什么解决方法或解决方案吗?

备忘录:

为了比较:

4

1 回答 1

1

我发现了另一个问题,它指向Windows文档的 Http.sys注册表设置和. 我已经确认将其设置为允许请求通过 HTTP.SYS 而不会立即被拒绝。IIS 然后发回它自己的 400 页面,但至少它到达 IIS 并出现在 IIS 日志中。那时可能会进一步处理应用自定义错误页面等的请求。AllowRestrictedCharsHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters1

于 2021-03-16T12:43:34.220 回答