1

我正在尝试将 Azure 中的托管工作进程切换为使用 xml 序列化程序而不是默认的 json 序列化程序。我通过像这样实现 IWantCustomInitialization 来做到这一点:

public class BusInitialization : IWantCustomInitialization
{
    public void Init()
    {
        Configure.Instance.XmlSerializer();
    }
}

但是,当我启动云解决方案时,出现以下错误:

启动端点时出现异常,已记录错误。原因:类型 NServiceBus.Unicast.Transport.CompletionMessage 未在序列化程序中注册。检查它是否出现在要扫描的已配置程序集/类型列表中。

当我不使用自定义初始化并转到 JsonSerializer 时,一切都很好。有没有人建议我去哪里?我使用 NSB 3.2.8。

4

1 回答 1

2

认为这是固定的,但我刚刚检查过,看起来在 3.2.8 中,jsonserializer 还不能轻易被覆盖。这已经在 dev 分支上修复了,但还没有发布,它将在下一个发布。

如果您等不及下一个版本,则可以通过将 AsA_Worker 替换为您自己的角色和角色处理程序来解决此问题,类似于:

3.2.8 版本https://github.com/NServiceBus/NServiceBus/blob/master/src/azure/Hosting/NServiceBus.Hosting.Azure/Roles/Handlers/WorkerRoleHandler.cs

开发版本https://github.com/NServiceBus/NServiceBus/blob/develop/src/azure/Hosting/NServiceBus.Hosting.Azure/Roles/Handlers/WorkerRoleHandler.cs

亲切的问候,伊夫

于 2012-10-25T14:03:46.287 回答