IIS 7.0不显示自定义错误页面

时间:2009-08-18 09:57:31

标签: asp.net-mvc iis-7

我正在运行一个有自己的错误处理程序的应用程序。在开发环境中进行测试时,错误页面会正确显示(错误页面显示正确)。
但是生产IIS上的相同代码,错误页面将被替换。 问题描述为here

我只是想知道是否有办法在web.config文件中编写此设置,而不是修改代码。

4 个答案:

答案 0 :(得分:13)

Awe是对的(+1),但另外:IIS 7在您链接的博客文章和this MSDN article中描述了特殊处理。如果您在操作中使用HandleErrorAttribute,则已经为您完成了。如果没有,您需要设置:

filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;

...你自己。

答案 1 :(得分:8)

嗯原来,为了强制IIS 7显示自定义页面,应该在web.config文件中添加以下行。

输入system.webServer部分

<httpErrors errorMode="Detailed"> <!-- this is impornant -->
<!-- Some custom error pages url go here -->
</httpErrors>

答案 2 :(得分:4)

应用程序Web.config文件中有一个设置来设置调试模式:

默认为:

<customErrors mode="RemoteOnly" />

尝试将其设置为“关闭”(注意:该值区分大小写!)

<customErrors mode="Off" />

我不确定IIS7是否遵守此设置,但由于您从部署中看到了开发环境中的不同行为,这是我的第一个猜测。要测试是否是这种情况,如果您有这种可能性,可以尝试从网络中的其他计算机运行您的开发应用程序。

答案 3 :(得分:1)

我发现<system.webServer>部分可以让请求通过。然后,我的应用可以显示我的自定义页面。您可以在Web.Config

中使用这些行
<system.webServer>
  <httpErrors existingResponse="PassThrough" />
</system.webServer>

您还可以阅读扩展版本以了解What to expect from IIS7 custom error module