PRB: ThreadAbortException виникає, якщо ви використовуєте, Response.End, Response.Redirect або Server.Transfer

Переклади статей Переклади статей
Номер статті: 312629 - Показ продуктів, яких стосується ця стаття.
Розгорнути все | Згорнути все

Ознаки

Якщо ви використовуєте, Response.End, Response.Redirectабо Server.Transfer метод, виникає ThreadAbortException -винятку. Можна спробувати зловити заяву зловити цей виняток.

причина

Метод 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 - Востаннє переглянуто: 30 серпня 2012 р. - Редакція: 1.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 KbMtuk
Машинний переклад
УВАГА! Цю статтю переклала програма машинного перекладу Microsoft, а не людина. Корпорація Microsoft пропонує вам як машинні переклади, так і переклади фахівців, щоб Ви мали доступ до всіх статей бази знань рідною мовою. Проте стаття, яку переклав комп’ютер, не завжди бездоганна. Вона може містити лексичні, синтаксичні або граматичні помилки. Так само помиляється іноземець, спілкуючись вашою рідною мовою. Корпорація Microsoft не несе відповідальність за жодні неточності, помилки або шкоду, завдану неправильним перекладом змісту або його використанням з боку користувачів. Крім того, корпорація Microsoft часто оновлює програму машинного перекладу.
Клацніть тут, щоб переглянути цю статтю англійською мовою: 312629

Надіслати відгук

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com