Asp.net mvc IIS 7.0没有';不显示自定义错误页

Asp.net mvc IIS 7.0没有';不显示自定义错误页,asp.net-mvc,iis-7,Asp.net Mvc,Iis 7,我运行的应用程序有自己的错误处理程序。在开发环境中进行测试时,错误页面正确显示(错误页面正确显示) 但是,会替换生产IIS上的相同代码的错误页。 描述了该问题 我只是想知道是否有办法将此设置写入web.config文件,而不是修改代码。应用程序web.config文件中有一个设置用于设置调试模式: 默认值为: <customErrors mode="RemoteOnly" /> 尝试将其设置为“Off”(注意:该值区分大小写!) 我不确定IIS7是否尊重此设置,但由于您在开

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


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

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

默认值为:

<customErrors mode="RemoteOnly" />

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


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

Awe是正确的(+1),但除此之外:IIS 7具有您链接的博客文章中描述的特殊处理。如果您在操作中使用HandleErrorAttribute,则此操作已为您完成。如果没有,则需要设置:

filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;

…您自己。

事实证明,为了强制IIS 7显示自定义页面,应该在web.config文件中添加以下行

放入system.webServer部分

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

我发现
部分可以让请求通过。然后,我的应用程序可以显示我的自定义页面。您可以在
Web.Config
中使用这些行:

<system.webServer>
  <httpErrors existingResponse="PassThrough" />
</system.webServer>


您也可以阅读扩展版来了解。

设置此设置的原因是什么?显然,我不是为Microsoft说话。我只能猜测他们的动机。我的猜测是,用户认为真正的错误信息是“可怕的”。因此,伊江的假错误页面,以及这个特性。因此,可能是您在MVC应用程序中显示的页面。你只需要告诉IIS你已经提供了一个用户友好的错误消息,所以它不需要麻烦。我已经尝试过了,但没有成功。我还在.config文件中包含了一些服务器设置,但结果表明IIS不知何故忽略了它们。
<system.webServer>
  <httpErrors existingResponse="PassThrough" />
</system.webServer>