Windows · 2011-03-14

配置 IIS 7 显示详细错误信息

如果你在 IIS 7 中只看到诸如 HTTP Error 500 – Internal Server Error (500 – 内部服务器错误) 的简单错误信息,那么可以通过如下步骤配置 IIS7 以输出详细错误信息。

通过 IIS 配置

  1. 按住 WIN + R 打开命令行输入 inetmgr 打开 IIS 管理
  2. 左边目录选择目标站点,在右边 IIS 块中双击 Error Pages
  3. 在 Error Pages 中右边的 Actions,选择 Edit Feature Settings
  4. 在 Error Responses 中,选择 Detailed errors,单机 OK 完成配置。

iis7-detailed-errors

通过命令行

启用详细错误:

%windir%\system32\inetsrv\appcmd.exe set config “Default Web Site/yourapp” /section:httpErrors /errorMode:Detailed

禁用详细错误:

%windir%\system32\inetsrv\appcmd.exe set config “Default Web Site/yourapp” /section:httpErrors /errorMode:Custom

通过 web.config 配置

其实,上面在两种配置,最终都会反应到对应的 web.config 中。因此,我们可以直接编辑 web.config。特别是对于买的虚拟主机(Shared Web Hosting),没有权限更改IIS。打开网站目录,找到 web.config 文件(如果没有,就建立一个 txt 文件存为 web.config),找到 system.webServer 配置节,添加配置 <httpErrors errorMode=”DetailedLocalOnly” />

[code:xml]

<configuration>
<system.webServer>
<httpErrors errorMode=”DetailedLocalOnly” />
</system.webServer>
</configuration>

[/code]

注意

  • 此参数选项可以应用到网站或子目录或虚拟目录。
  • 此参数选项对所有 IIS 应用程序有效,包括 ASP, APS.NET, PHP 等。

如果是 ASP.NET 程序,可能还需要配置  <customErrors mode=”Off” />
[code:xml]

<system.web>
<customErrors mode=”Off” />
</system.web>

[/code]

此外,如果是 ASP 程序,还可以配置 sendErrorsToBrowser 选项:

通过 IIS 配置

  1. 按住 WIN + R 打开命令行输入 inetmgr 打开 IIS 管理
  2. 左边目录选择目标站点,在右边 IIS 块中双击 ASP
  3. 在 ASP 页中展开 Debugging Properties 节点
  4. 找到 Send Errors To Browser ,选择 true
  5. 右边 Actions 中,单击 Apply

iis7-detailed-errors-asp

通过命令行

启用:

%windir%\system32\inetsrv\appcmd set config -section:asp -scriptErrorSentToBrowser:true

禁用:

%windir%\system32\inetsrv\appcmd set config -section:asp -scriptErrorSentToBrowser:false

注意上面参数中 config 后面不能指定站点目录