У меня проблемы с отладкой приложения, которое вызывает другой домен AppDomain, потому что, если исключение происходит во всем, что делает другой домен AppDomain, это исключение всплывает и вызывает сбой Visual Studio 2010 независимо от того, что.
Я правильно обернул вызов метода, который добавляет try/catch
, и исключение правильно перехватывается, когда я запускаю приложение (приложение ASP.NET MVC) в обычном режиме, но при отладке w3wp.exe
в Visual Studio 2010, он всегда прерывает вызов метода, который выбрасывает, и я никак не могу обойти исключение, даже если оно должно быть перехвачено.
Я пытался украсить внешний метод, в котором try/catch
и вызов метода throwing выполняются с [DebuggerStepThrough]
, но это не имеет абсолютно никакого эффекта. Выполнение «Продолжить (F5)», «Перешагнуть (F10)» или «Выходить (F11)» также ничего не дает; Visual Studio просто делает небольшую паузу, а затем снова останавливается в том же месте с точно таким же исключением. Как только Visual Studio остановился в точке, где происходит исключение, кажется, что нет абсолютно никакого способа двигаться дальше.
То, что я делаю в точности, вызывает assembly.GetExportedTypes()
, который может выдать, если экспортируемый тип ссылается на сборку, которая не может быть найдена (обстоятельство, которое я хочу игнорировать). Исключение:
FileNotFoundException пересекла собственную / управляемую границу
Я правильно ловлю FileNotFoundException
и, как я уже сказал, это работает при запуске приложения, но не при отладке. Как я могу заставить отладчик понять, что я даю крысу задницу, если assembly.GetExportedTypes()
бросает?
Обновление:
Я подумал, что обернул это, сняв флажок в Visual Studio 2010 под названием «Разрывать, когда исключения пересекают границы AppDomain или управляемые / собственные (только управляемые)» (в разделе «Отладка> Общие»), но проблема снова появилась , Я посыпал [DebuggerStepThrough]
, [DebuggerStepperBoundary]
и [DebuggerNonUserCodeAttribute]
на метод, о котором идет речь, без какого-либо эффекта.