ASP.Net частично игнорирует мой раздел пользовательских ошибок в web.config - PullRequest
2 голосов
/ 01 декабря 2009

Вот мой раздел web.config customErrors (вы заметите, что я переключил режим на «Вкл.», Чтобы видеть перенаправление на моем локальном хосте):

    <customErrors defaultRedirect="~/Application/ServerError.aspx" mode="On" redirectMode="ResponseRewrite">
        <error statusCode="403" redirect="~/Secure/AccessDenied.aspx" />
    </customErrors>

и вот код, который выдает:

        Catch adEx As AccessDeniedException

              Throw New HttpException(DirectCast(HttpStatusCode.Forbidden, Integer), adEx.Message)

        End Try

и вот что я получаю в итоге:

alt text

Это не моя красивая страница AccessDenied.aspx, но это запрещенная страница с ошибкой, так что, по крайней мере, я знаю, что мой бросок работает.

Я удалил запись для 403 в IIS (7.0) как отчаянную последнюю попытку, и это неудивительно, что без разницы.

У меня закончились идеи, поэтому любые предложения будут с благодарностью приняты!

Ответы [ 2 ]

0 голосов
/ 01 декабря 2009

Вам нужно указать existingResponse="PassThrough" в разделе system.webServer элемента httpErrors.

<configuration>
   <system.webServer>
       <httpErrors existingResponse="PassThrough" />
   </system.webServer>
</configuration>
0 голосов
/ 01 декабря 2009

На самом деле, ваша страница aspx может вообще не выполняться.
Перейти в IIS. Перейти к свойствам вашего сайта по умолчанию. Нажмите на вкладку Домашний каталог Нажмите кнопку настройки. Теперь проверьте, зарегистрирована ли там страница .aspx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...