带有Azure和XML序列化程序的NServiceBus

时间:2012-10-25 08:44:33

标签: azure nservicebus

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

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

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

  

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

当我没有使用自定义初始化并且它转到JsonSerializer时,一切都很好。有没有人有建议我应该在哪里看?我使用的是NSB 3.2.8。

1 个答案:

答案 0 :(得分: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

亲切的问候, 伊夫