Я понимаю (сейчас), что Response.Redirect() и Response.End() бросают ThreadAbortException как дорогостоящий способ убить текущий поток обработки, чтобы эмулировать поведение ASP Classic Response.End() и Response.Redirect.Response.Redirect() ThreadAbortException Bubbling Too High Intermittently
Однако.
Кажется, с перерывами в нашем приложении, что исключение пузырьков слишком велико. Например, у нас есть страница, которая вызывается из javascript на стороне клиента, чтобы вернуть небольшую строку для отображения на странице.
protected void Page_Load(object sender, EventArgs e)
{
// Work out some stuff.
Response.Write(stuff);
Response.End();
}
Как правило, это работает, но иногда, мы получаем исключение барботирования до уровня UI и получить часть текста исключения отображается на странице.
Кроме того, еще где мы имеем:
// check the login is still valid:
if(!loggedin) {
Response.Redirect("login.aspx");
}
В некоторых случаях, пользователь перенаправляется на login.aspx, в других, пользователь получает страницу ошибки и дамп стека ASP.NET (из-за того, как наши серверы dev настроены).
Т.е. в некоторых случаях response.redirect генерирует исключение, вплоть до ВМЕСТО от выполнения перенаправления. Зачем? Как это остановить?
Проработал с некоторыми исследованиями, что нужно делать, но, все же хотите понять, почему иногда он пузырится исключение, а другие работают. – THEMike
Почему вы используете Response.Write() для записи текста на страницу в любом случае? Это не рекомендуемый метод - это более классический ASP, чем ASP.NET. –