В моем 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 - не найденопользователь столкнется со страницей ошибки IIS 7.5:
Ошибка HTTP 404.0 - не найденопользователь столкнется со страницей ошибки IIS 7.5:
Ошибка HTTP 404.0 - не найдено ресурс, который вы ищете, был удалено, было изменено название или временно недоступен.
Подробная информация об ошибке:
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 не поддерживает этот тип адреса или нет? Как я могу запретить пользователям видеть эту желтую страницу.
Изменить: Благодаря ответу Дэвида, но я нашел реальную причину и правильное решение. Пожалуйста, посмотрите мой ответ.