代码改变世界

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

2010-01-15 01:29 by 晓风残月, ... 阅读, ... 评论, 收藏, 编辑

如果你在 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" />

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

注意

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

 

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

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

此外,如果是 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 后面不能指定站点目录

 

其他链接:

The new Configuration System in IIS 7 http://blogs.msdn.com/carlosag/archive/2006/04/25/IIS7ConfigurationSystem.aspx 
System.webServer Section Group http://msdn.microsoft.com/en-us/library/ms689429.aspx
Improve PHP Error Messages in IIS 7 http://learn.iis.net/page.aspx/765/improve-php-error-messages-in-iis-7/
Tips for Classic ASP developers on IIS7 http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx
IIS 7 父子目录同时安装 WordPress 时固定链接的问题 http://blogs.leoworks.net/php2010/2010/01/13/break-iis7-url-rewrite-rule-inheritance-for-parent-child-wordpress/

此文在晓风博客 http://blogs.leoworks.net/jinglecat/post/iis7-show-defailed-error.aspx