使用MsmqSubscriptionStorage时,NServiceBus 2.0会丢失第一条发布的消息

问题描述

| 我在发布/订阅方案中使用MsmqSubscriptionStorage,并且尚未存储订阅时,第一条消息丢失。如果我在GenericHost中运行时看到调试消息,则看到所有订阅都已设置,但第一条消息从未发送给订阅者。如果发送了更多消息,则它们已成功发送给订户(如日志中所示) 我正在使用2.0.0.0版。 这是我正在使用的总线配置。
var bus = Configure.With(
    new List<Assembly>
    {
        typeof(Configure).Assembly,typeof(IBus).Assembly
    })
    .DefaultBuilder()
    .Log4Net()
    .XmlSerializer()
    .MsmqTransport()
        .IsTransactional(true)
        .PurgeOnStartup(false)
    .UnicastBus()
        .ImpersonateSender(false)
        .LoadMessageHandlers()
    .MsmqSubscriptionStorage()
    .CreateBus()
    .Start();
    

解决方法

        我正在回答自己的帖子,所以没有人看到此问题,并得出结论NServiceBus有问题。这是我的GCE-(重大概念错误)。我的托管环境推迟了对总线静态引用的解析。更改过程的初始化以在启动时设置静态总线参考即可解决该问题。     ,        如果您在注册任何订阅之前进行发布,则这些消息将没有目的地,将被忽略。您可能需要查看数据库订阅存储,以减少瞬态。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...