Отклик Response.redirect "Тема была прервана" - PullRequest
38 голосов
/ 02 февраля 2011

Я вызываю код VB.NET, когда мне нужно удалить объект из БД.На странице Page_load я проверяю, не выполняется ли обратная запись (для предотвращения обновления вручную), и после удаления объекта я перенаправляю на страницу вызывающего абонента с помощью Response.redirect.На этом этапе мой код вызывает исключение

: ИСКЛЮЧЕНИЯ В файле File_delete.aspx.vb Номер строки: 34 Сообщение об ошибке: поток был прерван.

и, вклПросмотр событий Я вижу, что aspnet_wp.exe дает сбой:

aspnet_wp.exe (PID: 1532) неожиданно остановился.

Для получения дополнительной информации см. Центр справки и поддержки по адресу http://go.microsoft.com/fwlink/events.asp.

Непонятно, почему это происходит только здесь, потому что я использую response.redirect также для просмотра файла, а не только для его удаления.

Ответы [ 4 ]

108 голосов
/ 02 февраля 2011

По умолчанию Response.Redirect() прерывает текущий поток. Естественно, это бросает ThreadAbortException. Это можно предотвратить, передав false в Response.Redirect(), что не прервет текущий поток.

Однако знайте, что это значит. Если поток не прерван, код, следующий за Response.Redirect(), продолжит выполняться. Контролируйте свой логический поток соответственно. (Это часто делается с помощью return операторов и других директив управления потоком после перенаправления.)

16 голосов
/ 02 февраля 2011

Response.Redirect всегда выдаст ThreadAbortException, в соответствии с документацией MSDN , если вы не зададите логическое значение false для endResponse входного параметра HttpRequest.Redirect(string, bool).

Просто укажите false для endResponse параметра.

4 голосов
/ 28 июля 2014

Список вариантов решения этой проблемы, изложенный здесь, работал для меня (я использовал № 2): https://gist.github.com/cemerson/9dea993044a4e7fdca0e

0 голосов
/ 02 февраля 2011

Response.Redirect создает исключение по дизайну. Это нормально.

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