Как никогда не показывать страницу с желтыми ошибками? - PullRequest
2 голосов
/ 12 марта 2012

В целях безопасности (не для отображения версии .net framework) я хочу быть уверен, что желтая страница asp.net (страница ошибок) никогда не отображается посетителю Какова лучшая практика?
Обратите внимание, что я использовал Custom как режим ошибок для httperrors, но затем:
- Должен ли я объявлять все потенциальные ошибки http? Я мог забыть статус ...
- Лучше?

Пример моего web.config:

<httpErrors errorMode="Custom">
        <remove statusCode="502" subStatusCode="-1" />
        <remove statusCode="501" subStatusCode="-1" />
        <remove statusCode="412" subStatusCode="-1" />
        <remove statusCode="406" subStatusCode="-1" />
        <remove statusCode="405" subStatusCode="-1" />
        <remove statusCode="403" subStatusCode="-1" />
        <remove statusCode="401" subStatusCode="-1" />
        <remove statusCode="400" subStatusCode="-1" />
        <remove statusCode="404" subStatusCode="-1" />
        <remove statusCode="500" subStatusCode="-1" />
        <error statusCode="404" path="/404Page.aspx" responseMode="ExecuteURL" />
        <!-- ETC error for each status .... -->
</httpErrors>

Ответы [ 3 ]

3 голосов
/ 12 марта 2012

Это то, что у меня есть в моем web.config для проекта. Он ловит почти все ... Вы можете использовать столько кодов ошибок, сколько захотите, используя этот метод.

             <customErrors mode="On" defaultRedirect="pgError.aspx">
                <error statusCode="504" redirect="pgNoConnection.aspx"/>
             </customErrors>
2 голосов
/ 12 марта 2012

Чтобы не получить желтую страницу, выполните следующие действия:

(1) Создайте свою страницу ошибок, например Error.aspx

(2) Завершив страницу ошибок, настройте веб-приложение на использование пользовательской страницы ошибок вместо ошибки времени выполнения YSOD. Это достигается путем указания URL-адреса страницы ошибки в атрибуте секции defaultRedirect. Добавьте следующую разметку в файл Web.config вашего приложения:

<configuration>
    ...

    <system.web>
        <customErrors mode="RemoteOnly"
                      defaultRedirect="~/ErrorPages/Oops.aspx" />

        ...
    </system.web>
</configuration>

(3) По умолчанию все типы ошибок приводят к отображению одной и той же пользовательской страницы ошибок. Однако вы можете указать другую пользовательскую страницу ошибки для определенного кода состояния HTTP, используя дочерние элементы в этом разделе. Например, для отображения другой страницы ошибки в случае ошибки «страница не найдена» с кодом состояния HTTP 404 обновите раздел, добавив следующую разметку:

<customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPages/Oops.aspx">
    <error statusCode="404" redirect="~/ErrorPages/404.aspx" />
</customErrors>

для более подробной информации перейдите по этой ссылке: http://www.asp.net/web-forms/tutorials/deployment/displaying-a-custom-error-page-cs

2 голосов
/ 12 марта 2012

Я думаю, что при указании defaultRedirect любой код ошибки будет перенаправлен на эту страницу по умолчанию.

В этом примере все коды ошибок http перенаправляются на GenericError.htm, кроме 500, которое перенаправляетсядо InternalError.htm.Вы можете удалить строку, которая вызывает другое перенаправление на код состояния 500, и все ошибки будут переходить на одну и ту же страницу.

    <configuration>
      <system.web>
        <customErrors defaultRedirect="GenericError.htm"
                      mode="RemoteOnly">
          <error statusCode="500"
                 redirect="InternalError.htm"/>
        </customErrors>
      </system.web>
    </configuration>

Здесь у вас есть полная ссылка MSDN для раздела customErrors

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