В методе OnClick для кнопки в веб-форме ASP.NET у меня есть вызов Response.Redirect() который заставляет систему, чтобы прервать нить с сообщением об ошибке:«Исключение брошено:« System.Threading.ThreadAbortException »в mscorlib.dll» при использовании Response.Redirect()
Exception thrown: 'System.Threading.ThreadAbortException' in mscorlib.dll
Там в несколько вопросов, подобных этому здесь, используя свои решения я изменил:
Response.Redirect("~/UI/Home.aspx");
к
Response.Redirect("~/UI/Home.aspx", false);
Context.ApplicationInstance.CompleteRequest();
Однако я все еще получаю ту же проблему. Используя отладчик, я пробежал код и все это успешно выполнялось до тех пор, пока я не вызвал Response.Redirect() ;.
OnClick Функция
protected void btnLogin_Click(object sender, EventArgs e)
{
SiteUser s = null;
try
{
string email = txtEmail.Text;
string pwd = txtPwd.Text;
s = DBConnection.login(email, pwd);
}
catch (Exception ex)
{
Console.Write(ex);
lblLoginError.Text = "Error logging in.";
}
if (s != null)
{
Session["UserSession"] = s;
Response.Redirect("~/UI/Home.aspx", false);
Context.ApplicationInstance.CompleteRequest();
}
else
{
lblLoginError.Text = "User not found. Please check your details and try again.";
}
}
Любые мысли о том, почему это может происходить?
'Response.Redirect()' * действительно не должны * бросать это исключение, когда дано 'false' аргумент ... – David
Возможный дубликат [Почему Response.Redirect вызывает System.Threading.ThreadAbortException ?] (http://stackoverflow.com/questions/2777105/why-response-redirect-causes-system-threading-threadabortexception) –
@Am_I_Helpful Очень похожая проблема, но она не решена решениями там. –