【问题标题】:F5/Continue to next requestF5/继续下一个请求
【发布时间】:2021-10-01 12:34:07
【问题描述】:

在带有 VS 2019 的 ASP.NET Core 中调试时,当我打开 break on exceptions 时??? , F5 通过堆栈的每个弹出 ????.

我怎么说“继续退出此请求并让异常冒泡到顶部而不会中断”?这是VS中的一个选项吗?


【问题讨论】:

    标签: visual-studio asp.net-core debugging


    【解决方案1】:

    由于 ASP.NET Core 应用程序是一个长期运行的进程,VS 无法知道请求开始和结束的位置和时间。您可以禁用所有断点,按 F5,然后为下一个请求重新启用它们。

    您始终可以设置热键来加快此工作流程

    【讨论】:

      【解决方案2】:

      我确实相信您看到的是在每个异步堆栈帧上重新抛出异常。如果异常对话框显示您可以在从 System.Private.CoreLib.dll 程序集抛出异常时抑制该异常,您可以确认这一点,即使它最初是在您的代码中抛出的。

      如果禁用“仅我的代码”,您应该会看到异常从 ExceptionDispatchInfo 引发,这是用于在 async/await 中使用原始调用堆栈重新引发异常的类型。这也是导致 System.Private.CoreLib.dll 抛出这些异常的原因。

      我发现改善这一点的唯一方法是在从系统抛出异常时不中断,无论是通过使用带有模块参数的异常过滤器,还是在异常对话框 > 异常设置中。这仅对您从未在 System.Private.CoreLib.dll 中遇到的异常有效。我也不确定这对 Just My Code 和外部库是如何工作的,因为只有在从 async/await 机器重新调度后,异常才可能到达您的代码。

      考虑到这一点,您通常只需要一直按 F5 或更多地依赖断点而不是异常来进行调试。

      或者,正如另一个答案中所暗示的,您可以在请求完成之前禁用异常并重新启用它们。

      【讨论】:

        猜你喜欢
        • 2021-12-12
        • 2018-12-21
        • 1970-01-01
        • 2011-12-25
        • 1970-01-01
        • 1970-01-01
        • 2021-07-16
        • 2021-04-11
        • 2021-05-07
        相关资源
        最近更新 更多