Рекомендуется ли устанавливать для параметра endResponse значение False при вызове HttpResponse.Redirect в Asp. Net Обработчик Application_Error? - PullRequest
1 голос
/ 28 февраля 2020

У меня работает приложение Asp. Net Web Forms. NET Framework 4.7.2 с конвейером Owin.

В обработчике Application_Error я добавляю код в конце обработчик для перенаправления на пользовательскую страницу ошибки при возникновении необработанного исключения. Я прочитал много сообщений на этом сайте, которые предполагают, что достаточно вызвать Response.Redirect("~/ErrorPage.aspx"), но документация Microsoft для метода HttpResponse.Redirect указывает в разделе замечаний, что:

Перенаправить вызовы End , который выдает исключение ThreadAbortException по завершении. Это исключение отрицательно влияет на производительность веб-приложений. Поэтому мы рекомендуем вместо этой перегрузки использовать перегрузку HttpResponse.Redirect (String, Boolean) и передать false для параметра endResponse, а затем вызвать метод CompleteRequest .

Пара вопросов:

1) В обработчике Application_Error есть причина, почему я не должен перенаправлять, как показано ниже?

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
        ' Other logging code etc removed for brevity

        Server.ClearError()

        Response.Redirect("~/ErrorPage.aspx", endResponse:=False)
        CompleteRequest()
End Sub

2) В обработчиках событий страницы (например, Page_Load ), события нажатия кнопки и т. д. c ... есть ли причина, по которой мне не следует звонить endResponse:=False, а затем CompleteRequest()? Или, другими словами, при каких обстоятельствах вы определенно хотели бы убедиться, что endResponse было установлено на True?

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