Мое пользовательское сообщение об ошибке перезаписывается - PullRequest
0 голосов
/ 10 августа 2011

Итак, у меня есть веб-страница, написанная на C # для ASP.NET, и в некоторых случаях она возвращает пользовательскую ошибку.

Например, в какой-то момент это может быть как:

Response.StatusCode = 400;
Response.Status = "A long custom error message here.";
Response.Write(Resonse.Status);

и когда я открываю это локально (через http://mymachinename/foo/bar.aspx), я вижу свое настраиваемое сообщение об ошибке. При развертывании его на удаленном сервере я просто вижу свое настраиваемое сообщение об ошибке, перезаписанное текстом «Плохой запрос» (это все). Это должна быть какая-то конфигурация, но я не могу ее найти.

Ответы [ 3 ]

3 голосов
/ 10 августа 2011

Проверьте, есть ли в вашем файле web.config атрибут httpErrors.

<system.webServer>
  <httpErrors existingResponse="PassThrough" />
</system.webServer>
1 голос
/ 10 августа 2011

Серверы могут иметь свои собственные файлы конфигурации с кодами ошибок, как вы упомянули.Например, редактирование файла .htaccess на сервере apache позволит вам связать свои собственные страницы ошибок с исключениями, или вы можете просто написать в разметке самостоятельно, чтобы сэкономить время.

Обновление

Вы также можете сделать

Response.TrySkipIisCustomErrors 

, если вы используете IIS.

Дополнительная информация

http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx

0 голосов
/ 10 августа 2011

Те решения, которые предоставляют другие ребята, совершенно верны, но я думаю, что вы также можете управлять им из IIS Manager, если есть определенная страница с ошибкой с кодом 400, откройте IIS Manager, перейдите на .Net Error Pages, посмотритедля кода ошибки 400 нажмите на настройку функции редактирования на правой панели, затем выберите «Выкл.» в открывшемся окне «Редактировать страницу настройки ошибки».

...