如何重定向所有错误,包括404

时间:2012-06-04 22:26:40

标签: c# asp.net asp.net-mvc c#-4.0

我希望所有错误都转到相同的错误页面。我最初尝试使用statuscodes的错误标记。这工作正常,但我不必指定任何状态代码,仍然将每个错误都转到一个页面。问题是,如果我删除了状态代码条目,404将进入服务器的404页面,而不是我的错误页面。

是否有某种方法可以将所有错误配置为转到同一页面?

2 个答案:

答案 0 :(得分:2)

您应该更改web.config并添加customErrors元素。然后,您可以将默认重定向设置为单元页面

例如

<customErrors mode="On" defaultRedirect="Error.aspx">

</customErrors>

您可以参考MSDN文章 http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx

在IIS7上,您可以使用新的httpErrors部分

<system.webServer>
    <httpErrors defaultPath="Error.aspx" defaultResponseMode="Redirect">
    </httpErrors>
</system.webServer>

了解更多信息 http://www.iis.net/ConfigReference/system.webServer/httpErrors

答案 1 :(得分:1)

如果我理解得很清楚,您需要将所有错误发送到您的自定义错误页面,以及iis7给出的错误(不仅仅是您的程序)

这是你需要在II7上设置的东西,但你也可以从web.config设置它(但实际上是给ii7的说明)这是一个例子

<configuration>
   <system.webServer>
      <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" >
         <remove statusCode="500" />
         <error statusCode="500"
            prefixLanguageFilePath="C:\Contoso\Content\errors"
            path="500.htm" />
       </httpErrors>
   </system.webServer>
</configuration>

参考:http://www.iis.net/ConfigReference/system.webServer/httpErrors