c# - 如何调试在 rebus 处理程序中抛出的异常?

标签 c# .net-core rebus

在本地主机的开发过程中调试异常的推荐方法是像这样抛出处理程序:

class MyEventHandler : IHandleMessages<MyEvent>
{
    public async Task Handle(BlogLinkCreated message)
    {
        await Task.Delay(100);
        throw new Exception();
    } 
}

我在调试输出中看到了一些异常,但我不知道它们是从哪里来的。我想查看堆栈跟踪,理想情况下是单步执行调用堆栈并查看局部变量的值。

最佳答案

Rebus 记录在执行处理程序时捕获的异常,包括异常通过调用 .ToString() 揭示的所有内容。

这包括完整的堆栈跟踪,如果您正在运行代码的调试版本,它还将包括源文件行号。

如果您没有以某种方式禁用日志记录,应该很容易找出哪一行代码抛出任何异常,让 Rebus 看到。

如果您使用 Visual Studio 开发代码,您也可以直接按 F5(或您用来启动附加调试器的应用程序的任何热键),然后等待调试器因异常而中断。

关于c# - 如何调试在 rebus 处理程序中抛出的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52623543/

相关文章:

C# 将 DateTime 从一种格式转换为另一种格式

c# - 如何使用 .NET 6 在 Clean Architecture 中注册基础设施层依赖项?

c# - 如何计算两个引号之间的文本?

c# - 使用 NHibernate 和 CaSTLe WCF 工具在 WCF 上下文中处理 Rebus 消息

c# - Rebus 失败的消息会发生什么情况

azureservicebus - 将 Rebus 与 Azure 服务总线、队列和主题结合使用的代码示例

c# - 如何将 "using static"指令用于动态生成的代码?

asp.net - 从枚举 .NET Core 中选择列表

docker - 如何在Mac上将ASP.Net Core连接到SQL Server Docker容器

c# - 从 TokenValidatedContext 获取签名