【问题标题】:%09 in a URL causes IIS (HTTP.SYS?) to return HTTP 400 immediatelyURL 中的 %09 导致 IIS (HTTP.SYS?) 立即返回 HTTP 400
【发布时间】:2013-10-23 06:12:26
【问题描述】:

我发现 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中的错误响应,但没有效果)。

错误请求 - 无效网址

HTTP 错误 400。请求 URL 无效。

是否有任何解决方法或解决方案?

备忘录:

比较:

【问题讨论】:

    标签: http iis http.sys


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2016-12-07
      • 1970-01-01
      • 2015-11-08
      • 1970-01-01
      相关资源
      最近更新 更多