加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在Visual Studio 2010中调试时,忽略跨AppDomains的异常

发布时间:2020-12-15 04:01:04 所属栏目:百科 来源:网络整理
导读:调试一个应用程序调用另一个AppDomain的应用程序有问题,因为如果其他AppDomain正在执行任何异常,异常会起起来,导致Visual Studio 2010无论如何都会中断. 我正确地包装了一个try / catch中的方法调用,当正常运行应用程序(一个ASP.NET MVC应用程序)时,异常被正
调试一个应用程序调用另一个AppDomain的应用程序有问题,因为如果其他AppDomain正在执行任何异常,异常会起起来,导致Visual Studio 2010无论如何都会中断.

我正确地包装了一个try / catch中的方法调用,当正常运行应用程序(一个ASP.NET MVC应用程序)时,异常被正确地捕获,但是当在Visual Studio 2010中调试w3wp.exe时,它总是打破方法调用,抛出,没有办法我可以超越异常,即使它应该被捕获.

我试图装饰外部方法,其中try / catch和throwing方法调用使用[DebuggerStepThrough]完成,但绝对没有影响.执行“继续(F5)”,“逐步执行(F10)”或“退出(F11)”也不做任何操作; Visual Studio只是暂停一点,然后在完全相同的位置再次断开与完全相同的例外.一旦Visual Studio停止发生异常的时候,似乎绝对没有办法继续前进.

我正在做的是正在调用assembly.GetExportedTypes(),如果导出的类型引用了一个无法找到的程序集(我想忽略的情况)可能会抛出.抛出的异常是:

FileNotFoundException crossed a native/managed boundary

我正在正确地捕获FileNotFoundException,正如我所说,这在运行应用程序时起作用,但在调试时不起作用.如果assembly.GetExportedTypes()抛出,我如何让调试器明白我给老鼠屁股?

更新:

我以为我已经通过取消选中Visual Studio 2010中的选项,称为“异常跨越AppDomain或托管/本机边界(仅管理)”(在调试>一般)下),但问题现在再次弹出.我已经对所讨论的方法上的任何效果都撒了[DebuggerStepThrough],[DebuggerStepperBoundary]和[DebuggerNonUserCodeAttribute].

解决方法

Visual Studio 2010中有一个选项,称为“异常跨越AppDomain或受管理/本机边界(仅管理)”)(在调试>一般)下,当未选中时,有时会有所帮助.当我不需要退出Visual Studio 2010时,删除所有临时文件,然后重试.不是一个非常优雅的解决方案,所以如果有任何更好的想法,请提供他们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读