Проигнорируйте исключения, которые пересекают AppDomains при отладке в Visual Studio 2010

У меня есть проблемы с отладкой приложения, которое обращается к другому AppDomain, потому что, если исключение происходит в том, что другой AppDomain делает, пузыри исключения и заставляет Visual Studio 2010 повреждаться несмотря ни на что.

Я правильно перенес вызов метода, который добавляет a try/catch, и исключение правильно поймано, когда я запускаю приложение (приложение MVC ASP.NET) обычно, но при отладке w3wp.exe в Visual Studio 2010 это всегда повреждается на вызове метода, который бросает и нет никакого способа, которым я могу закончить исключение даже при том, что это должно быть поймано.

Я попытался украсить внешний метод в который try/catch и бросок вызова метода, покончили [DebuggerStepThrough] но это не имеет абсолютно никакого эффекта. Выполнение "Продолжается (F5)", "Переступают (F10)", или "Выходят (F11)" ничего не делает также; Visual Studio просто паузы некоторое время и затем повреждается снова в том же самом пятне за тем же самым исключением. После того как Visual Studio остановилась в точке, в которой происходит исключение, кажется, нет абсолютно никакого способа идти дальше.

Что я делаю, точно звонит assembly.GetExportedTypes() который может бросить, если экспортируемый тип ссылается на блок, который не может быть найден (обстоятельство, которое я хочу проигнорировать). Выданное исключение:

FileNotFoundException пересек собственную/управляемую границу

Я ловлю FileNotFoundException правильно и поскольку я сказал, что работы при запуске приложения, но не при отладке. Как я могу заставить отладчик понять, что я даю задницу крыс если assembly.GetExportedTypes() броски?

Обновление:

Я думал, что мне обернули это путем снятия выделения с опцией в Visual Studio 2010, названный "Повреждение, когда исключения пересекают AppDomain или управляемые/собственные границы (Управляемый только)" (при Отладке> Общий), но проблема открылась снова сейчас. Я опрыснул [DebuggerStepThrough], [DebuggerStepperBoundary] и [DebuggerNonUserCodeAttribute] на методе рассматриваемый withuot любой эффект.

11
задан Asbjørn Ulsberg 27 October 2011 в 12:34
поделиться

1 ответ

В Visual Studio 2010 есть опция "Break when exceptions cross AppDomain or managed/native boundaries (Managed only)" (в разделе Debugging > General), которая, если снять галочку, иногда помогает. Когда это не помогает, мне нужно выйти из Visual Studio 2010, удалить все временные файлы, а затем попробовать снова. Не очень элегантное решение, так что если у кого-то есть идеи получше, пожалуйста, поделитесь ими.

16
ответ дан 3 December 2019 в 07:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: