c# - 使用NServiceBus非常简单的错误处理

标签 c# .net error-handling nservicebus

嘿,这是一个简单的场景

  • NServiceBus客户端/服务器设置。
  • “消息”是我编写的自定义类。

  • 客户端发送请求消息。服务器收到该消息,然后服务器执行以下操作:
    Bus.Reply(new UserDataResponseMessage { ID = Guid.NewGuid(), Response = users });
    

    然后什么也没有。客户永远不会收到回应。

    异常(exception):

    通过浏览log4net NServiceBus日志,我发现了一个异常,事实证明我的海关类“用户”未标记为可序列化。

    好的,如何“抛出”或“处理”这种错误?

    NServiceBus似乎提倡不处理错误的想法,但是在这种情况下,很明显看到某种“抛出”将节省很多时间。

    我如何处理此类异常,它们在哪里发生,在哪里发生?

    最佳答案

    大家好,这是我解决问题的方法:

    从本质上讲,我已经了解到,您真的应该“处理” nServiceBus中的错误,但它不是那样设计的。因此,我采用的方法是双重的:

  • UnitTesting -运行测试。 nServiceBus有一个非常酷的测试 namespace ,您可以在其中为通信部分编写一些测试。
  • 智能日志记录-在这种情况下,将错误日志与其他日志分开。由于nServiceBus使用log4net,因此使用简单的配置很容易获得一些不错的日志记录变体。
  • 关于c# - 使用NServiceBus非常简单的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2741404/

    相关文章:

    c# - LINQ 和 XmlNodes 元素

    javascript - AJAX操作页面上的错误处理

    c# - 在 C# 中的窗体之间切换

    c# - 在新的浏览器进程中打开一个 URL

    c# - 跳过潜在的空值 c#

    c# - 有没有任何工具可以帮助我们将 IEnumerator 属性重构为 IList<T> 或类似的?

    php - 错误登录foreach正在填充exim邮件队列

    iis-7 - 在IIS 7中添加特定于站点的错误页面设置

    c# - 断言该值等于预期值集合中的任何一个

    c# - 如何对 EF 中的多个条目进行显式加载?