Почему 404 Custom Error работает, а 500 Custom Error нет? - PullRequest
0 голосов
/ 05 октября 2019

Я реализовал CustomErrors в моем web.config. Ошибка 404 работает должным образом, 500 ошибок просто отображают пустую страницу макета по умолчанию со стандартным сгенерированным выводом HTML .NET в области RenderBody.

Код в файле web.config:

<customErrors mode="On">
  <error statusCode="404" redirect="~/404.html"/>
  <error statusCode="500" redirect="~/500.html"/>
</customErrors> 

404 можно увидеть здесь: http://www.airportcars -gatwick.com / я-не-существует

500 можно увидеть здесь: https://taxis.gatwickairport.com/Book?Q=9fa5-514e-4c3a-972f8baee58fa2b9

(оба файла находятся на сервере в одном и том же корневом каталоге)

Это страница макета с HTML, внедренным в RenderBody

</div>
 </header>
 <!-- //Header -->

 <!DOCTYPE html>
 <html>
  <head>
   <meta name="viewport" content="width=device-width" />
   <title>Error</title>
  </head>
  <body>
   <hgroup>
    <h1>Error.</h1>
    <h2>An error occurred while processing your request.</h2>
   </hgroup>
  </body>
 </html>

<!-- Footer -->
<footer class="footer teal" role="contentinfo">
    <div class="wrap">
 ..etc...

Не уверен, что мне не хватает

1 Ответ

0 голосов
/ 06 октября 2019

Кажется, проблема была в конфигурации по умолчанию моих GlobalFilters.

GlobalFilters - это способ связать атрибут с каждым методом Action в приложении ASP.NET MVC. Я предполагаю, что мой проект автоматически позаботился об этом для меня.

В моей папке app_start в файле FilterConfig.cs:

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }
}

Итак, закомментировав строку RegisterGlobalFilters в Global. Файл asax.cs, проблема была решена.

protected void Application_Start()
    {
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); // Comment out

Надеюсь, это поможет, если кто-то еще столкнется с таким же поведением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...