Веб-приложение с использованием System.Web.Routing - PullRequest
2 голосов
/ 19 сентября 2011

У меня есть веб-приложение ASP.NET C #, которое использует System.Web.Routing.

Почему-то я не могу отловить все ошибки 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 голосов
/ 22 сентября 2011

В вашем 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>
0 голосов
/ 22 сентября 2011

Вы можете попробовать это:

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