Bibhas Paul Ответов: 5

Почему Ответ.Перенаправление всегда вызывает внутреннее исключение, которое автоматически разрешается фреймворком


Я только что столкнулся “System.Threading.ThreadAbortException- исключение, если я напишу ответ.Перенаправление в блоке try. См. ниже код, который я написал.


protected void btnVisitSecondPage_Click(object sender, EventArgs e)

Response.Redirect("frmSecondPage.aspx");
}
catch (Exception ex) { } 
} 

Приведенный выше код работает нормально, но если я его отлажу, то смогу увидеть Response.Redirect бросает “System.Threading.ThreadAbortException"исключение и решается фреймвроком автоматически.

Самое странное, что если я удалю блок try, то он также будет работать нормально, не вызывая исключения .

См. ниже код
protected void btnVisitSecondPage_Click(object sender, EventArgs e)Response.Redirect("frmSecondPage.aspx");

Может ли кто-нибудь дать мне объяснение ?

5 Ответов

Рейтинг:
38

lw@zi

Читать эту статью: http://support.microsoft.com/kb/312629/EN-US/ 

Надеюсь, это объясняет вашу проблему. 


Рейтинг:
2

Forbiddenx

Ответ.Перенаправление всегда выбрасывает исключение.
Лучше всего поймать тот тип исключения, который вы хотите.


CHill60

Вы понимаете, что этому вопросу уже 4 года?

SoMad

Это должна быть какая-то запись :). Может быть, кто-то должен сказать Дейву, что у него есть сообщение, ожидающее в решении 2 :).

Сорен Мадсен

phil.o

Хороший пост-рытье!

Рейтинг:
2

Bibhas Paul

Привет Даво, Спасибо за ваш ответ. Да, это правда. Даже это работает и на меня. Но если вы установите точку отладки и нажмете клавишу F11, чтобы запустить свой пример. Тогда вы можете увидеть ответ.Перенаправление бросает execption, который решается автоматически и, наконец, отвечает.Перенаправление работает. С нетерпением жду от вас этого известия.


Рейтинг:
2

sinaj75

Ответ.Перенаправление (url, false);
Контекст.ApplicationInstance.CompleteRequest();


а href="http://stackoverflow.com/questions/2777105/why-response-redirect-causes-system-threading-threadabortexception


Рейтинг:
1

DaveAuld

Я только что попробовал новое веб-приложение с 2 страницами,

На странице 1 была кнопка с ответом. перенаправление на страницу 2

На странице 2 была кнопка с response. redirect внутри блока try на страницу 1.

Он прекрасно работает без каких-либо проблем.