Please see my comment to the question. The simplest way of look at the stack trace is this:
System.Exception.StackTrace
:
http://msdn.microsoft.com/en-us/library/system.exception.stacktrace.aspx[
^].
Looking at
System.Exception.InnerException
(recursively) may also help, please see below. See:
http://msdn.microsoft.com/en-us/library/system.exception.innerexception.aspx[
^].
It's enough to catch all exceptions only once per thread, on top stack frame of the stack of each thread. But it does not mean that it always help to resolve a problem, because some exceptions could be caught down the stack with their propagation blocked, simply by not re-throwing such exceptions. If this is your code, try to avoid it. In some cases, this is acceptable, then log the exception information:
http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlog.aspx[
^].
One special case of blocking propagation could be re-throwing a different exception (a different type or a different instance). In particular, it could be re-thrown in a different thread. The usual practice is to "pack" the original exception in
InnerException
; that's why I noted its importance above.
Please takes these measures to get further information on your problem. For now, based on your information, that's all I can advise.
—SA