ASP.NET exception "Thread was being aborted" causes method to exit
What worked for me is increasing the "Idle Time-out (minutes)" property for the Application Pool on IIS.
I set it to "43200" which is the max value.
I also adjusted the recycling settings ...
To work around this problem, use one of the following methods:
For Response.End
, call the HttpContext.Current.ApplicationInstance.CompleteRequest
method instead of Response.End
to bypass the code execution to the Application_EndRequest
event.
For Response.Redirect
, use an overload, Response.Redirect(String url, bool endResponse)
that passes false for the endResponse
parameter to suppress the internal call to Response.End
. For example:
Response.Redirect ("nextpage.aspx", false);
If you use this workaround, the code that follows Response.Redirect
is executed.
For Server.Transfer
, use the Server.Execute
method instead.
This is a ThreadAbortException
; it's a special exception that is automatically rethrown at the end of every catch block, unless you call Thread.ResetAbort()
.
ASP .Net methods like Response.End
or Response.Redirect
(unless you pass false
) throw this exception to end processing of the current page; your someFunctionCall()
is probably calling one of those methods.
ASP .Net itself handles this exception and calls ResetAbort
to continue processing.