代码之家  ›  专栏  ›  技术社区  ›  Asbjørn Ulsberg

在VisualStudio2010中调试时忽略跨AppDomains的异常

  •  11
  • Asbjørn Ulsberg  · 技术社区  · 15 年前

    我在调试调用另一个AppDomain的应用程序时遇到了问题,因为如果在另一个AppDomain正在执行的操作中发生异常,异常就会冒出气泡,并导致visualstudio2010在任何情况下都崩溃。

    try/catch ,当我正常运行应用程序(ASP.NET MVC应用程序)时,但在调试时,会正确捕获异常 w3wp.exe 在visualstudio2010中,抛出的方法调用总是中断,即使应该捕获异常,我也无法通过它。

    我试过用外部装饰的方法 尝试/抓住 抛出方法调用是用 [DebuggerStepThrough]

    我要做的就是打电话 assembly.GetExportedTypes() 如果导出的类型正在引用找不到的程序集(我想忽略这种情况),则可能引发。引发的异常是:

    FileNotFoundException跨越了本机/托管边界

    我在接球 FileNotFoundException 正如我所说,这在运行应用程序时是正确的,但在调试时不是有效的。我怎样才能让调试器明白如果 assembly.GetExportedTypes() 投掷?

    [调试步骤] , [DebuggerStepperBoundary] [DebuggerNonUserCodeAttribute] 对所讨论的方法没有任何影响。

    1 回复  |  直到 13 年前
        1
  •  16
  •   Asbjørn Ulsberg    14 年前

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

        2
  •  0
  •   MicroservicesOnDDD    5 年前

    您可能在.NET Framework或Visual Studio中遇到问题,因此可以尝试以下操作之一:

    1. Uncheck "Enable Just My Code" in Debugger 这将确保在引用中发生异常时VS将中断。
    2. Configure Visual Studio 2013 for debugging .NET framework (与#1相同的链接)
    3. "7 Debugging Techniques you should know in C# .NET" -- "3. Debug your references with DnSpy" . 在第3节的底部还有关于以类似方式使用dotPeek和ReSharper的更多提示。