Я бы попробовал переместить ваш Response.Redirect вне блока try catch следующим образом:
try
{
Session["objtwitter"] = obj_UserDetSumit;
}
catch (Exception ex)
{
lblStatus.Text = "Account Creation Failed, Please Try Again";
return;
}
Response.Redirect("TwitterLogin.aspx");
Большинство людей, имеющих эту проблему здесь решили ее с помощью вызова Response.Redirect("TwitterLogin.aspx", false);
, который не приводит к немедленному завершению потока. Я не уверен, почему это не сработало для вас.
Я думаю, что проблема в том, что ваш Response.Redirect внутри блока try catch. Вызов Response.Redirect(url);
вызывает Response.End();
, что приведет к ThreadAbortException
.
Убедитесь, что вы больше не пытаетесь выполнять обработку после выполнения перенаправления.
Используя Отражатель , вы можете видеть, что Response.Redirect(url);
вызывает Response.Redirect(url, true);
Передача true затем вызывает Response.End();
, который выглядит так:
public void End()
{
if (this._context.IsInCancellablePeriod)
{
InternalSecurityPermissions.ControlThread.Assert();
Thread.CurrentThread.Abort(new HttpApplication.CancelModuleException(false));
}
....
}
Даже несмотря на то, что в вашем фрагменте кода нет кода finally, возможно, он пытается выполнить «пустой» в конечном итоге, но не может, потому что поток прерывается. Просто мысль.