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是否已部署在同一目录中。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...