Страницы пользовательских ошибок не отображаются на веб-сайте, но отображаются при запуске в visual studio - PullRequest
0 голосов
/ 01 октября 2019

Я настраиваю сайт принятия пользователей на моем сервере GoDaddy. Я прочитал кучу постов и сделал несколько вещей, но ничего не получается. При разработке в Visual Studio и запуске проекта все работает нормально. На живом сервере я не получаю пользовательские страницы ошибок. Он работает под управлением IIS 7.

Я пробовал использовать разные комбинации, используя httpErrors и CustomErrors в web.config. Используя оба и каждый сам по себе. Я читал, что с использованием httpErrors лучше использовать, если у вас есть II7. Ниже приведены две области кода. Я использую Id, чтобы получить код и одну страницу, чтобы вытащить все ошибки. Я хотел бы также подумать об этом. В то время как в других документах говорится, что вы должны использовать статическую страницу для ошибок, использование бритвенных страниц кажется мне странной идеей, поскольку вам нужно создать страницу вне проекта, а затем добавить ее к ней.

Первоначальноу меня были эти настройки в качестве индекса ошибки, но я изменил его, потому что думал, что это могло быть проблемойОказывается, не ..

<httpErrors errorMode="Custom">
  <remove statusCode="404" subStatusCode="-1"/>
  <error statusCode="404" path="Error/Index/404" responseMode="ExecuteURL"/>
  <error statusCode="500" path="Error/Index/500" responseMode="ExecuteURL"/>
</httpErrors>


 <customErrors mode="On" defaultRedirect="~/Error/Oops">
   <error statusCode="404" redirect="~/Error/Oops/404"/>
   <error statusCode="500" redirect="~/Error/Oops/500"/>
 </customErrors>

Контроллер прост

public ActionResult Oops(int id)
    {
        Response.StatusCode = id;

        return View();
    }

Я также хотел бы отметить, что ссылка URL для ошибки является правильной. Даже если я перейду прямо на страницу ошибки пользователя, я получу страницу 404, но не страницу пользователя. Мне, если у вас есть контроллер, который обслуживает представление, и вы предоставляете ему необходимую информацию, он должен появиться.

РЕДАКТИРОВАТЬ -

Также, когда я использую ошибки httpErrors, я получаю этона странице - Страница не может быть отображена, поскольку произошла внутренняя ошибка сервера.

Есть ли на сервере что-то, что нужно включить или выключить?

1 Ответ

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

Немного покопался и нашел чуть более подробный документ. Вот что исправило мою проблему.

<httpErrors errorMode="Custom" defaultResponseMode ="ExecuteURL" existingResponse="Replace">
  <remove statusCode="404"/>
  <error statusCode="404" path="/Error/Oops/404" responseMode="ExecuteURL"/>
  <remove statusCode="500"/>
  <error statusCode="500" path="/Error/Oops/500" responseMode="ExecuteURL"/>
</httpErrors>

Я использую как httpErrors, так и customErrors. Изменения не были сделаны с customErrors ..

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