1

Azure でホストされているワーカー プロセスを切り替えて、既定の json シリアライザーの代わりに xml シリアライザーを使用しようとしています。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 に答える