Страница не отображается при отправке кода состояния 500 клиенту

У меня есть страница (общий обработчик), на которой я хочу вернуть клиенту код состояния 500, чтобы указать, что что-то не так. Я делаю это так:

Response.StatusCode = 500;
Response.StatusDescription = "Internal Server Error";

И в то же время я отображаю дружественное сообщение, говорящее пользователю, что что-то пошло не так. Но вместо того, чтобы увидеть свое сообщение, я получаю сообщение IIS по умолчанию, в котором говорится что-то вроде этого:

Ошибка сервера 500 — внутренняя ошибка сервера. Возникла проблема с искомым ресурсом, и он не может быть отображен.

И если я захожу в IIS и удаляю страницу с ошибкой для 500, я получаю это сообщение:

Страница не может быть отображена, так как произошла внутренняя ошибка сервера.

Он работает так, как задумано в IIS6, но не в IIS7. Что мне нужно сделать, чтобы заставить его работать в IIS7?


person Allrameest    schedule 20.07.2010    source источник


Ответы (1)


Вам нужна еще одна строка, чтобы обойти IIS7 (исходя из установленного вами кода ошибки 500):

Response.TrySkipIisCustomErrors = true;

Ссылка: HttpResponse.TrySkipIisCustomErrors

person Nick Craver    schedule 20.07.2010