Пользовательские настройки ошибок игнорируются для местоположений, запрещенных в web.config - PullRequest
2 голосов
/ 12 апреля 2011

В приложении 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 ]

1 голос
/ 12 апреля 2011

Согласно этому сообщению в блоге, IIS7 пытается быть полезным и любит красть ваши пользовательские страницы ошибок и заменять их на свои.

Открыть Страницы ошибок функцию в IIS и нажмите Изменить параметры функции в меню справа.Установите параметр Подробные ошибки , чтобы IIS проходил через любые ошибки, которые вы обслуживаете в ASP.NET.

0 голосов
/ 12 апреля 2011

Если это IIS7, то похоже, что IIS угоняет ответ.Попробуйте это:

<configuration>
  <system.webServer>
    <httpErrors existingResponse="PassThrough" />
  </system.webServer>
</configuration>
...