一套使用NServiceBus的集成服务被扔到了我的腿上(不幸的是,我没有参与最初的实现,编写代码的人已经离开了)。
这些服务在我们的开发和测试环境中工作得很好;但是我不能让它们在我们的生产环境中运行。我得到了错误
NServiceBus.Unicast.Transport.CompletionMessage was not registered in the serializer.
Check that it appears in the list of configured assemblies/types to scan.我检查了服务器上的配置文件,它们几乎完全相同;特别是MsmqTransportConfig和UnicastBusConfig块是完全相同的。这两个环境之间的主要区别在于,在生产环境中,web/应用程序/数据库层位于不同的服务器上,而在测试环境中,它们都位于同一服务器上。但是,集成服务调用仅从应用程序层进行,即使在生产中,应用程序层和集成服务也驻留在同一服务器上(至少现在是这样),所以我不确定这是否会有所不同。
我确实下载了文档( .chm文件),但我点击的每个主题都显示“断开的链接”。
我还阅读了一些问题和答案,包括this one,但由于代码在我们的测试环境中工作,我不太愿意对其进行更改。
我们按如下方式配置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>如果有任何帮助,我将不胜感激。我不一定希望得到一个答案,只是在正确的方向上推动一下……现在我觉得我好像是在黑暗中拍摄。
发布于 2011-06-25 04:23:22
听起来像是nsb无法扫描nservicebus.core.dll中的类型。您能否验证它是否存在,是否未被阻止,以及log4net.dll是否部署在同一目录中。
https://stackoverflow.com/questions/6460247
复制相似问题