我是NServcie总线的新手,我正试图实施发布和订阅消息。这是我得到的错误
启动端点时出现异常,已记录错误。原因:找不到目标队列“mygateway”。您可能在配置文件中的UnicastBusConfig部分的MessageEndpointMappings中错误配置了此类消息的目标(NServiceBus.Unicast.Transport.CompletionMessage)。也可能是尚未创建给定队列的情况,或已被删除。
这是我在app config中使用的配置
<MsmqTransportConfig InputQueue="publisherqueue" ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5" /> <UnicastBusConfig DistributorControlAddress="" DistributorDataAddress="" ForwardReceivedMessagesTo=""> <MessageEndpointMappings> <add Messages="Messages" Endpoint="mygateway" /> </MessageEndpointMappings> </UnicastBusConfig> <MsmqSubscriptionStorageConfig Queue="GateWaySubscriptions" />
我的问题是为什么这个“mygateway”队列不是自动创建的?我做错了吗?请帮忙。
由于 亚历克斯。
答案 0 :(得分:7)
您正在配置的这个应用程序只是“拥有”(松散地使用该术语)MsmqTransportConfig中的队列,即“publisherqueue”和“error”。这些是它将尝试为您创建的唯一队列。
您的MessageEndpointMappings部分定义了“远程”队列,即您希望将消息从Messages发送到mygateway,或订阅来自mygateway的消息。另一个以“mygateway”作为输入队列的端点将对此负责。
所以你的应用告诉你的是“我发现你有兴趣与mygateway交换消息,但我敲了敲门,没有人回家。”