访问在 IIS 7.0 上托管的网站时出现错误消息:“HTTP 错误 404.11--URL_DOUBLE_ESCAPED”

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 942076
症状
您有一个在 Internet Information Services (IIS) 7.0 上托管的网站。当您访问网站时,可能会收到类似于以下错误消息:
服务器错误
--------------------------------------------------------------------------------
HTTP 错误 404.11--URL_DOUBLE_ESCAPED
HRESULT: 0
HRESULT # 已成功完成此操作的说明。
原因
对 Web 服务器的 HTTP 请求包含双重转义序列。但是,请求筛选功能配置是为了 Web 服务器拒绝双重转义序列。
解决方案
若要解决此问题,请执行以下步骤:

注意完成以下步骤后,可能会降低运行 IIS 的服务器的安全级别。因此,将allowDoubleEscaping属性设置为True之前,应考虑所涉及的风险。
  1. 单击开始键入 记事本开始搜索框中,在程序列表中,右键单击记事本,然后单击以管理员身份运行。如果提示您输入管理员密码或进行确认,请键入您的密码,或单击继续
  2. 文件菜单上,单击打开键入 %windir%\System32\inetsrv\config\applicationHost.config文件名框中,然后再单击打开
  3. 在 ApplicationHost.config 文件中,找到requestFiltering XML 元素。
  4. allowDoubleEscaping属性的值更改为True。若要执行此操作,请使用类似于下面的代码示例的代码。
    <requestFiltering allowDoubleEscaping="true">
  5. 文件菜单上,单击保存
  6. 退出记事本。
重要:当您启用双重转义序列时,则可能会降低运行 IIS 的服务器的安全级别。

前面的步骤将直接编辑 applicationHost.config 文件,并在服务器级别上配置此设置。您还可以使用Appcmd命令来配置该设置。若要执行此操作,请按照下列步骤操作:
  1. 单击开始,单击运行,然后键入 cmd打开框中。
  2. 键入以下命令,并按 enter 键:
    C:CD %windir%\system32\inetsrv
  3. 运行下列命令之一:
    • Appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True
      注意这将通过创建或编辑 Web.config 文件中的根文件夹中的"默认 Web 站点"配置该设置只为"默认网站"。
    • appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True /commit:appHost
      注意这将通过使用位置标记,在 applicationHost.config 文件中只为"默认网站"配置该设置。

警告:本文已自动翻译

属性

文章 ID:942076 - 上次审阅时间:08/07/2016 03:21:00 - 修订版本: 11.0

Microsoft Internet Information Services 7.0

  • kbexpertiseadvanced kbtshoot kbprb kbmt KB942076 KbMtzh
反馈