3
votes

I'm working on a asp.net web application with Visual Studio 2010. There are a bunch of output window messages during debugging regarding:

A first chance exception of type 'System.Threading.ThreadAbortException' occurred in mscorlib.dll

and

An exception of type 'System.Threading.ThreadAbortException' occurred in mscorlib.dll but was not handled in user code

I've read some great Q&A on the topic of how and why these might be raised and how to handle them (or not handle them). My first guess is that it is related to Response.Redirect()s that are in the code. However, I see them in the output and I'm not sure of the source of those output messages.

Question: how do I determine where the first chance exception came from in Visual Studio 2010?

Once I determine the source, I can investigate, solve or simply ignore per the Q&A linked to this question. Thanks in advance!

1

1 Answers

1
votes

From personal experience, unless there is specifically an error occurring as a result of these, these messages can generally be ignored.

I have read in the past that this can be solved by adding false to the second parameter of Response.Redirect to stop processing occurring after redirect.

E.g. Response.Redirect("path/to/page.aspx", false);

Response.Redirect on MSDN

When you use this method in a page handler to terminate a request for one page and start a new request for another page, set endResponse to false and then call the CompleteRequest() method. If you specify true for the endResponse parameter, this method calls the End method for the original request, which throws a ThreadAbortException exception when it completes. This exception has a detrimental effect on Web application performance, which is why passing false for the endResponse parameter is recommended. For more information, see the End method.