将ServiceBroker.net用作NServiceBus传输时,MsmqSubscriptionStorage无法记录订阅服务器

将ServiceBroker.net用作NServiceBus传输时,MsmqSubscriptionStorage无法记录订阅服务器,nservicebus,service-broker,Nservicebus,Service Broker,我正在使用连接到第三方CRM 上面的链接中描述了该模式,我的解决方案和提供的示例解决方案都存在相同的问题 使用Configure.With()NServiceBus主机运行正常,但是如果我手动创建订阅队列,则不会创建订阅队列,订阅服务器也不会存储在队列中 我真的不知道如何进步,我非常欣赏这些想法 发布服务器的调试日志,总结如下: 2011-11-25 10:27:04,712 [1] DEBUG NServiceBus.Serializers.XML [(null)] <(null)>

我正在使用连接到第三方CRM

上面的链接中描述了该模式,我的解决方案和提供的示例解决方案都存在相同的问题

使用
Configure.With()NServiceBus主机运行正常,但是如果我手动创建订阅队列,则不会创建订阅队列,订阅服务器也不会存储在队列中

我真的不知道如何进步,我非常欣赏这些想法

发布服务器的调试日志,总结如下:

2011-11-25 10:27:04,712 [1] DEBUG NServiceBus.Serializers.XML [(null)] <(null)> - Initializing type: NServiceBus.Unicast.Transport.SubscriptionMessage, NServiceBus.Core, Version=2.6.0.1505, Culture=neutral, PublicKeyToken=9fc386479f8a226c
2011-11-25 10:27:04,837 [1] DEBUG NServiceBus.Unicast.UnicastBus [(null)] <(null)> - Message NServiceBus.Unicast.Transport.SubscriptionMessage has been allocated to endpoint .
2011-11-25 10:32:15,603 [Worker.5] INFO  NServiceBus.Unicast.UnicastBus [(null)] <(null)> - Subscribing Registration.IndividualHandler.InputQueue@COMPUTER to message type Messages.IIndividualUpdated, Messages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
2011-11-25 10:47:55,493 [Worker.5] DEBUG NServiceBus.Unicast.UnicastBus [(null)] <(null)> - Sending message Messages.__Impl.IIndividualUpdated, NServiceBus.Grid.Messages.__Impl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null with ID c2267496-5f7e-4b3d-a1c4-69a7e68982a1\6367966 to destination Registration.IndividualHandler.InputQueue@COMPUTER.    
2011-11-25 10:27:04712[1]调试NServiceBus.Serializers.XML[(null)]-初始化类型:NServiceBus.Unicast.Transport.SubscriptionMessage,NServiceBus.Core,版本=2.6.0.1505,区域性=neutral,PublicKeyToken=9fc386479f8a226c
2011-11-25 10:27:04837[1]调试NServiceBus.Unicast.UnicastBus[(null)]-消息NServiceBus.Unicast.Transport.SubscriptionMessage已分配给端点。
2011-11-25 10:32:15603[Worker.5]INFO NServiceBus.Unicast.UnicastBus[(null)]-订阅注册.IndividualHandler。InputQueue@COMPUTER至消息类型Messages.IIndividualUpdated,消息,版本=1.0.0.0,区域性=中性,PublicKeyToken=null
2011-11-25 10:47:55493[Worker.5]调试NServiceBus.Unicast.UnicastBus[(null)]-发送消息消息。"Impl.IIndividualUpdated,NServiceBus.Grid.Messages。"Impl,版本=0.0.0.0.0,区域性=中立,PublicKeyToken=null,ID为c2267496-5f7e-4b3d-a1c4-69A7E68989A1\6367966到目标注册.IndividualHandler。InputQueue@COMPUTER.    

我找到了一个有效的解决方案,但这会引发更多的问题

我已将Init方法更改为:

Configure.With()
    .StructureMapBuilder()
    .XmlSerializer()
    .MsmqSubscriptionStorage()
    .MsmqTransport()
            .IsTransactional(true)
            .PurgeOnStartup(false);
致:

现在我得到了订阅持久性


必须有一些对
.Start()
的隐式调用,其行为方式与我显式调用它时不同。有人对这种不同的行为有什么解释吗?

我找到了一个有效的解决方案,但这会引发更多的问题

我已将Init方法更改为:

Configure.With()
    .StructureMapBuilder()
    .XmlSerializer()
    .MsmqSubscriptionStorage()
    .MsmqTransport()
            .IsTransactional(true)
            .PurgeOnStartup(false);
致:

现在我得到了订阅持久性


必须有一些对
.Start()
的隐式调用,其行为方式与我显式调用它时不同。有人对这种不同的行为有何解释吗?

您是否看到在端点之间发送的订阅消息?有。即使正在使用内存中的订阅存储,也会出现这种情况。我正在运行带有IWantCustomInitialization的AsAPublisher,上面是配置程序的代码行。订阅者和发布者都可以工作,消息会飞过,但没有订阅持久性。还要注意的是,我在其他发布者中运行了MsmqSubscriptionStorage,但没有使用上述servicebroker传输示例的发布者。在我成功的subscrption Persience实现中,我只使用过DefaultBuilder。您是否看到在端点之间发送的订阅消息?是的。即使正在使用内存中的订阅存储,也会出现这种情况。我正在运行带有IWantCustomInitialization的AsAPublisher,上面是配置程序的代码行。订阅者和发布者都可以工作,消息会飞过,但没有订阅持久性。还要注意的是,我在其他发布者中运行了MsmqSubscriptionStorage,但没有使用上述servicebroker传输示例的发布者。在我成功的SubCrption Persience实现中,我只使用过DefaultBuilder。是的,如果总线未启动,它将不会处理订阅。您如何可能正在配置MsmqTransport并声称您正在使用SQL service broker?@nightwatch查看原始问题中链接的示例,该示例显示如何同时使用这两个传输。是,如果总线未启动,它将不会处理订阅。您如何可能正在配置MsmqTransport并声称您正在使用SQL service broker?@nightwatch查看原始问题中链接的示例,该示例演示了如何同时使用这两个传输。