На моем веб-сайте ASP.NET 3.5, который опубликован у провайдера общего хостинга, я настроил свой файл web.config следующим образом:
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="AccessDenied.htm"/>
<error statusCode="404" redirect="FileNotFound.htm"/>
</customErrors>
Если пользователь запрашивает несуществующие страницы (например, «www.example.com/NotExistPage.aspx»), пользователь будет перенаправлен на страницу FileNotFound.htm, как мы и ожидали.
Но если пользователь запросит какой-либо адрес, например: «www.example.com/NotExistDirectory» без расширения .aspx, пользователь увидит страницу ошибки IIS 7.5:
Ошибка HTTP 404.0 - Not Found Ресурс, который вы ищете, был удален, его имя было изменено или он временно недоступен.
Подробная информация об ошибке:
Module IIS Web Core
Notification MapRequestHandler
Handler StaticFile
Error Code 0x80070002
Requested URL http://www.example.com:80/NotExistDirectory
Physical Path D:\Websites\example\example.com\wwwroot\NotExistDirectory
Logon Method Anonymous
Logon User Anonymous
Это желтая страница, которая неудобна для пользователя, и мы этого не ожидали.
Мне интересно, установка customeError в webconfig не поддерживает этот тип адреса или нет? Как я могу запретить пользователям видеть эту желтую страницу.
Редактировать: Спасибо за ответ Дэвида, но я нашел настоящую причину и правильное решение. Пожалуйста, смотрите мой ответ.