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