如何解决NServiceBus.Unicast.Transport.CompletionMessage未在序列化器中注册
| 一整套使用NServiceBus的集成服务已经丢到我的腿上了(不幸的是,我没有参与最初的实现,而编写代码的人已经离开了)。 这些服务在我们的开发和测试环境中运行良好;但是我无法让它们在我们的生产环境中运行。我得到错误NServiceBus.Unicast.Transport.CompletionMessage was not registered in the serializer.
Check that it appears in the list of configured assemblies/types to scan.
我已经检查了服务器上的配置文件,它们几乎是相同的;特别是“ 1”和“ 2”块是相同的。两种环境之间的主要区别在于,在生产环境中,Web /应用程序/数据库层位于单独的服务器上,而在测试环境中,它们都位于同一服务器上。但是,集成服务调用仅是从应用程序层进行的,即使在生产环境中,应用程序层和集成服务也位于同一服务器上(至少现在是这样),因此我不确定这应该有所作为。
我确实下载了文档(.chm文件),但是我单击的每个主题都说“断开的链接”。
我还阅读了包括此问题在内的几个问题和答案,但是由于代码在我们的测试环境中可以正常工作,所以我不太愿意对其进行更改。
我们正在按以下方式配置NServiceBus:
NServiceBus.Configure.WithWeb()
.Log4Net()
.StructureMapBuilder(ObjectFactory.Container)
.XmlSerializer()
.MsmqTransport()
.IsTransactional(true)
.PurgeOnStartup(false)
.MsmqSubscriptionStorage()
.UnicastBus()
.LoadMessageHandlers()
.ImpersonateSender(false)
.CreateBus()
.Start();
传输配置如下:
<MsmqTransportConfig
InputQueue=\"OutboundSubscriptionRequestQueue\"
ErrorQueue=\"error\"
NumberOfWorkerThreads=\"1\"
MaxRetries=\"5\"
/>
<UnicastBusConfig
DistributorControlAddress=\"\"
DistributorDataAddress=\"\"
ForwardReceivedMessagesTo=\"\">
<MessageEndpointMappings>
</MessageEndpointMappings>
</UnicastBusConfig>
我将非常感谢您的协助。我并不一定要给我答案,只是向正确的方向轻推...现在,我感觉好像在黑暗中射击。
解决方法
听起来像nsb无法扫描nservicebus.core.dll中的类型。您是否可以验证其当前存在但未被阻止,以及log4net.dll是否已部署在同一目录中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。