Andrea Girardi Andrea Girardi - 7 months ago 38
Vb.net Question

Response.redirect raises "Thread was being aborted"

I've a VB.NET code called when I need to delete an object from DB. On Page_load I check if it's not post back (to prevent a manual refresh) and, after the deletion of the object I redirect to the caller page using Response.redirect. At this point my code raise an


exception:EXCEPTION OCCURS In
File_delete.aspx.vb Line Number: 34
Error Message: Thread was being
aborted.


and, on Event Viewer I can see that aspnet_wp.exe crashes:


aspnet_wp.exe (PID: 1532) stopped
unexpectedly.

For more information, see Help and
Support Center at
http://go.microsoft.com/fwlink/events.asp.


It's not clear why this happens only here because I use the response.redirect also to view the file and not only to delete it.

Answer

By default, Response.Redirect() aborts the current thread. Naturally, this throws a ThreadAbortException. It can be prevented by passing a false to Response.Redirect(), which won't abort the current thread.

Be aware of what that means, however. If the thread is not aborted, the code following the Response.Redirect() will continue to execute. Control your logic flow accordingly. (This is often done with return statements and other flow control directives following a redirect.)