Первое исключение исключения типа "System.Threading.ThreadAbortException" произошло в mscorlib.dll
Я работаю над приложением asp.net.. когда я пытаюсь скомпилировать и запустить приложение; он работает успешно.
Но когда я пытаюсь отлаживать приложение, он дает мне ошибку в любой момент -
В mscorlib.dll произошел первый случай исключения типа "System.Threading.ThreadAbortException"
Он не дает ошибок в какой-либо конкретной строке кода.. он дает эту ошибку в любом коде строки (не уверен).., а затем отображается веб-страница - ошибка "Сервер недоступен".
Даже когда я пытаюсь разобрать/выполнить какой-либо оператор в непосредственном окне/быстрый просмотр - это дает мне ошибку выше.
Например, я загрузил XML-документ (более 10000 строк) в XElement и когда я пытаюсь проверить значение некоторого атрибута через xpath как XElementObj.XPathSelectElement( "/asdf/asd/wqer/xyz" ).. it дает выше ошибку.. (не все время, но случайным образом).
любой, кто имеет представление об этом, пожалуйста, помогите.
Ответы
Ответ 1
У меня было что-то подобное, и нашел этот ответ из другого вопроса:
Если вы хотите определить, где исключения происходят, вы можете выберите меню "Отладка- > Исключения" и в появившемся диалоговом окне, установите первый флажок для "Common Исключения языка Runtime". сделает отладчик как можно скорее как исключение, а не только нарушение необработанных исключений.
Это также одна из причин, почему вообще плохая идея поймать общий за исключением случаев, когда вы явно протоколирование обнаруженной информации.
Ответ 2
У меня было это исключение, заброшенное в моем приложении asp.net, и нашел этот пост форума:
PRB: ThreadAbortException возникает, если вы используете Response.End, Response.Redirect или Server.Transfer http://support.microsoft.com/default.aspx?scid=kb;en-us;312629
Это имеет смысл, поскольку я перенаправлял на страницу прямо перед тем, как что-либо было отображено (ожидаемое поведение кстати)
Временное решение для MS для исключения любых исключений:
Чтобы обойти эту проблему, используйте один из следующих способов:
-
Для Response.End вызовите метод HttpContext.Current.ApplicationInstance.CompleteRequest вместо Response.End, чтобы обойти выполнение кода в событие Application_EndRequest.
-
Для Response.Redirect используйте перегрузку Response.Redirect(String url, bool endResponse), которая передает значение false для параметра endResponse для подавления внутреннего вызова Response.End. Например: Response.Redirect ("nextpage.aspx", false);
-
Для Server.Transfer вместо этого используйте метод Server.Execute.
Если вы используете это обходное решение, выполняется код, следующий за Response.Redirect.
Для Server.Transfer вместо этого используйте метод Server.Execute.