我正在开发一个使用 NServiceBus 的 web api 项目。每次我启动我的 NserviceBus 主机时,调试过程都会中断,我会收到“无可用源”消息,我无法弄清楚发生了什么。我可以从我的 api 项目发送消息,主机将通过简单地继续跳过错误来接收它,但每次我启动主机时都会收到该消息。
我的 nservicebus 配置:
// nservicebus configuration
Configure.WithWeb()
.DefaultBuilder()
.ForWebApi()
.Log4Net()
.XmlSerializer()
.MsmqSubscriptionStorage()
.MsmqTransport()
.IsTransactional(false)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false)
.CreateBus()
.Start(() => Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());
我的 web.config:
<configSections>
<section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
</configSections>
<MsmqTransportConfig ErrorQueue="Error" NumberOfWorkerThreads="1" MaxRetries="5" />
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="Messages" Endpoint="Domain" />
</MessageEndpointMappings>
</UnicastBusConfig>
app.config:
<configSections>
<section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
<section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" />
</configSections>
<MsmqTransportConfig ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5" />
<MessageForwardingInCaseOfFaultConfig ErrorQueue="error" />
我的处理程序实现了 IHandleMessages,当我继续通过错误消息时,它似乎处理了消息,并且端点被配置为服务器。当 NServiceBus 的控制台窗口出现时,如果队列中已有消息,我会收到错误消息,告诉我端点未配置为发布者。
我正在使用 NServiceBus 3.0.0。
感谢您的任何意见。