В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

PRB: Исключение ThreadAbortException возникает при использовании Response.End, Response.Redirect или Server.Transfer

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

Эта статья на английском языке: 312629
Проблема
При использовании методов Server.Transfer , Response.Redirectили Response.End, возникает исключение ThreadAbortException . Оператор try-catch можно использовать, чтобы перехватить это исключение.
Причина
Метод Response.End завершает выполнение страницы и сдвигает выполнения событие Application_EndRequest в конвейере событий приложения. Строки кода, который следует за Response.End , не выполняется.

Данная проблема возникает в методах Response.Redirect и Server.Transfer оба метода внутреннего вызова Response.End .
Решение
Для временного решения проблемы используйте один из следующих методов:
  • Для Response.End, вызов HttpContext.Current.ApplicationInstance.CompleteRequest вместо метода Response.End выполнение кода в обход Application_EndRequest событие.
  • Для Response.Redirect, используйте перегрузку, Response.Redirect (url строки, bool endResponse) который проходит ЛОЖЬ для endResponse параметр для подавления внутренний вызов Response.End. Например:
      Response.Redirect ("nextpage.aspx", false);						
    При использовании этого метода обхода на код, который соответствует Response.Redirect выполняется.
  • Для Server.Transfer, с помощью Server.Execute метод вместо.
Статус
Данное поведение является нормальным.

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 312629 — последний просмотр: 06/07/2013 12:37:00 — редакция: 5.0

Microsoft ASP.NET 4.5, Microsoft ASP.NET 4.0, Microsoft ASP.NET 3.5, Microsoft ASP.NET 2.0, Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0

  • kbexcepthandling kbprb kbmt KB312629 KbMtru
Отзывы и предложения
; m.content = guid; m.name = "ms.dqid"; document.getElementsByTagName("head")[0].appendChild(m);