Пользовательская страница 404 для сайта ASP.net на IIS7 для не- ASP.NET URL - PullRequest
2 голосов
/ 11 ноября 2009

У меня есть сайт asp.net с пользовательским 404.htm. Он настроен с разделом customErrors для обработки aspx.

<customErrors mode="On" defaultRedirect="404.htm"><br> <error statusCode="403" redirect="404.htm" /><br> <error statusCode="404" redirect="404.htm" /><br> </customErrors><br> <system.webServer><br> <httpErrors><br> <error statusCode="404" path="404.htm" /><br> <error statusCode="500" path="404.htm" /><br> </httpErrors><br> <modules runAllManagedModulesForAllRequests="true"> ...<br> </system.webServer>

Хорошо обрабатывает неправильное имя.aspx. Но для запросов, не относящихся к aspx, таких как неправильное имя.htm, IIS7 по-прежнему возвращает общее сообщение об ошибке, а не пользовательский. Как заставить его сделать это, скажем, за все ошибки для этого сайта, включая 500? Должен ли я написать модуль или это возможно декларативно?

Ответы [ 3 ]

0 голосов
/ 11 ноября 2009

Чтобы пользовательский 404 применил контрольный бит IIS, необходимо настроить его для обработки используемого расширения.

Для интегрированного конвейера в IIS7 я подумал (хотя IIS7 делает жизнь интереснее), что по умолчанию обрабатывается все расширения.

Сначала проверьте, работает ли у вас приложение в Классическом или Интегрированном - если первое, то это будет частью проблемы, если второе ... Мне нужно каждый раз решать это сделать это достаточно).

0 голосов
/ 07 января 2010

При локальном тестировании iis7 будет показывать вам общее сообщение об ошибке, если вы не добавите атрибут к httpErrors, errorMode="Custom". Вам нужно отредактировать C:\Windows\System32\inetsrv\config\applicationHost.config, чтобы разрешить это.

0 голосов
/ 11 ноября 2009

Вы можете установить пользовательские страницы ошибок для большинства ошибок HTTP через настройки IIS для своего веб-сайта. (В IIS 5 это вкладка Properties-> Custom Errors, не знаю, где вы найдете ее для IIS7)

...