ASP.Net 4: Пользовательские страницы ошибок с правильным кодом статуса HTTP, как? - PullRequest
2 голосов
/ 10 марта 2011

Я использую сайт ASP.Net 4 в Windows 2008 R2 с IIS 7.5.

При разработке я также использую Windows 7 и VS 2010 с IIS 7.5.

I 'я настроил мой web.config следующим образом:

<customErrors mode="On" defaultRedirect="~/Error500.aspx" redirectMode="ResponseRewrite">
  <error statusCode="404" redirect="~/Error404.aspx"/>
</customErrors>

И моя страница Error404.aspx имеет такой код:

protected void Page_Load(object sender, EventArgs e)
{
    Response.StatusCode = 404;
}

На моей машине разработчика это работает нормально, ясм. мою красивую страницу с ошибками в браузере, и с помощью Fiddler я могу подтвердить, что я получаю только статус HTTP 404.

Теперь, когда я публикую его на своем сервере, это другая история.Здесь я увижу собственную страницу 404 IIS ("C: \ inetpub \ custerr \ en-US \ 404.htm")

Если я удалю Response.StatusCode из моего кода, я получуна сервере - страница ошибок, хотя и с HTTP-статусом 200.

Что я пропускаю, так как это не работает?

1 Ответ

2 голосов
/ 10 марта 2011

Помогает ли эта статья Рика Штраля ?Он охватывает 500 ошибок и свойство TrySkipIisCustomErrors для переопределения поведения IIS по умолчанию.

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