Пользовательские настройки ошибок игнорируются для местоположений, запрещенных в web.config
В приложении ASP.Net 4 и MVC2 возникает странная ошибка конфигурации.
Файл web.config выглядит примерно так:
<configuration>
<location path="blockedpath">
<system.web>
<authorization>
<deny users="*" />
</authorization>
</system.web>
</location>
<system.web>
<customErrors mode="On" defaultRedirect="~/Error.aspx" />
</system.web>
</configuration>
Посещение заблокированного местоположения корректно запрещено, но выдает подробное сообщение об ошибке из IIS, которое нам не нужно.
Почему он не обслуживает настроенную пользовательскую ошибку?
Можем ли мы контролировать, какую страницу он отображает, когда в конфигурации запрещен доступ к странице?
2 ответа
Согласно этому сообщению в блоге, IIS7 пытается быть полезным и любит красть ваши собственные страницы ошибок и заменять их своими собственными.
Откройте функцию " Страницы ошибок" в IIS и щелкните " Изменить параметры функции" в правом меню. Задайте параметр " Подробные ошибки", чтобы IIS проходил через все ошибки, которые вы обслуживаете в ASP.NET.
Если это IIS7, то похоже, что IIS угоняет ответ. Попробуй это:
<configuration>
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
</configuration>