【问题标题】:why there is a CompletionMessage when start my service?为什么启动我的服务时出现完成消息?
【发布时间】:2011-08-08 01:57:06
【问题描述】:

我创建了一个 nservice 应用程序。

应用程序监听队列 A,如果队列 A 有消息,则做一些处理。 然后向队列 B 发送另一条消息。

下面是我启动 nservice 总线的方式

_bus = NServiceBus.Configure.With()
                    .Log4Net()
                    .DefaultBuilder()
                    .XmlSerializer()
                    .MsmqTransport()
                        .IsTransactional(true)
                        .PurgeOnStartup(false)
                    .UnicastBus()
                        .ImpersonateSender(false)
                        .LoadMessageHandlers()
                    .CreateBus()
                    .Start();

这是配置:

<MsmqTransportConfig 
    InputQueue="DemoQueueA" 
    ErrorQueue="DemoQueueAError" 
    NumberOfWorkerThreads="1" 
    MaxRetries="5"
/>

<UnicastBusConfig DistributorControlAddress="" DistributorDataAddress="">
    <MessageEndpointMappings>
        <add Messages="Demo.Messages" Endpoint="DemoQueueB"/>
    </MessageEndpointMappings>
</UnicastBusConfig>

当我启动我的应用程序时。 “DemoQueueB”中总是有一条消息

<?xml version="1.0"?>
<Messages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.net/NServiceBus.Unicast.Transport">
    <CompletionMessage>
        <ErrorCode>0</ErrorCode>
    </CompletionMessage>
</Messages>

那么我的申请有什么问题吗?因为我没有向 QueueB 发送任何内容。 这是一个空的应用程序。

【问题讨论】:

    标签: c#-4.0 nservicebus


    【解决方案1】:

    CompletionMessage 是 NServiceBus 用来管理自身的内部消息类型之一。 NServiceBus 使用它来初始化自身,通过 IBus.Return() 方法传递返回码,以及确认订阅和取消订阅请求。

    通常,您应该完全忽略这些消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      • 2011-01-14
      • 1970-01-01
      相关资源
      最近更新 更多