为什么启动我的服务时有一个CompletionMessage?

joj*_*ojo 4 nservicebus c#-4.0

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

应用程序侦听队列A,如果有来自队列A的消息则进行一些处理,然后将另一条消息发送到队列B.

下面是我启动我的服务总线的方式

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

这是配置:

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

<UnicastBusConfig DistributorControlAddress="" DistributorDataAddress="">
    <MessageEndpointMappings>
        <add Messages="Demo.Messages" Endpoint="DemoQueueB"/>
    </MessageEndpointMappings>
</UnicastBusConfig>
Run Code Online (Sandbox Code Playgroud)

当我开始我的申请."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>
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*ike 6

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

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