[Switch] ASP. NET "suspending thread" error cause, asp.net thread
I am not quite clear about some of the old problems in the recent system. ThreadAbortException occurs when using Response. End, Response. Redirect or Server. Transfer,
The system is normal, and the data can be saved normally. the try-catch statement is used to capture an exception, but the system is normal.
# [Operation record]: 9:25:12 System. Threading. ThreadAbortException: The thread is being aborted.
In System. Threading. Thread. AbortInternal ()
In System. Threading. Thread. Abort (Object stateInfo)
In System. Web. HttpResponse. End ()
In System. Web. HttpResponse. Redirect (String url, Boolean endResponse)
In System. Web. HttpResponse. Redirect (String url)
Symptom
If you use the Response. End, Response. Redirect, or Server. Transfer method, a ThreadAbortException exception occurs. You can use the try-catch statement to catch this exception.
Cause
<! -- Inject Script Filtered -->
The Response. End method terminates the page execution and switches this execution to the Application_EndRequest event in the event pipeline of the application. Do not execute the code line after Response. End.
This problem occurs in the Response. Redirect and Server. Transfer methods, because both methods call Response. End internally.
Solution
To solve this problem, use one of the following methods: For Response. End, call HttpContext. Current. ApplicationInstance. CompleteRequest instead of Response. End to skip the code execution of the Application_EndRequest event.
For Response. Redirect, use the overload Response. Redirect (String url, bool endResponse). This overload will pass false to the endResponse parameter to cancel internal calls to Response. End. For example:
Response. Redirect ("nextpage. aspx", false );
If this alternative method is used, the Code following Response. Redirect is executed.
For Server. Transfer, use the Server. Execute method.