使用System.Web.Routing的Web应用程序

时间:2011-09-19 13:01:37

标签: c# asp.net error-handling

我有一个使用System.Web.Routing的ASP.NET C#Web应用程序。

由于某种原因,我无法捕获所有HTTP错误。例如:

  • www.domain.com/adfasdf/asfadf/ - 正确重定向到自定义页面
  • www.domain.com/fafad/afdad/asfaf/ - 返回默认错误页面,如下所示:

404 page sample

的web.config:

<customErrors mode="On" defaultRedirect="Error">
    <error statusCode="404" redirect="Page-Not-Found"/>      
</customErrors>

我无法在Global.asax文件中捕获这些错误。

是否有将用户重定向到错误页面以查找根站点下的任何错误(已处理和未处理)?

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

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

答案 1 :(得分:0)

在你的Web.Config中,

添加以下部分以处理错误

<system.webServer>
...
    <httpErrors errorMode="Custom">
        <remove statusCode="404" subStatusCode="-1"/>   
        <remove statusCode="500" subStatusCode="-1" />  
        <error statusCode="404" prefixLanguageFilePath="" path="/Error404.aspx" responseMode="Redirect"/>
        <error statusCode="500" prefixLanguageFilePath="" path="/Error500.aspx" responseMode="Redirect" />  
    </httpErrors>
...
</system.webServer>

<system.web>
...
<customErrors defaultRedirect="/Error" mode="RemoteOnly">
    <error statusCode="500" redirect="/Error500.aspx" />
    <error statusCode="404" redirect="/Error404.aspx"/>
</customErrors>
...
</system.web>