0
2013-03-28 10:18:32,374 [Worker.5] 
WARN  NServiceBus.Unicast.UnicastBus [(null)] <(null)> - 
Received an empty message - ignoring.

bus.send("server", command) が mvc4 Web サイトからメッセージ プロセッサに送信されるクライアントがあります。メッセージ プロセッサは、カスタム初期化なしでデフォルトになるようにセットアップされました。

これは、global.asax の Web サイト側での私の構成です。

        Configure.With()
            .StructureMapBuilder(container)
            .JsonSerializer()
            .Log4Net()
            .MsmqTransport()
                .IsTransactional(false)
                .PurgeOnStartup(true)
            .UnicastBus()
                .ImpersonateSender(false)
            .CreateBus()
            .Start(() => Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());         

NServicebus 公開イベント - 空のメッセージを受け取ります を確認しましたが、それは役に立ちませんでした。読み取り専用のプロパティはありません。

4

2 に答える 2

0

私が見つけたもう1つのことは、IWantCustomInitialization以下の構成で使用していたことです。

Configure.With(typeof(TransactionDetailsHandler).Assembly) // this is problematic one
                .CastleWindsorBuilder(container)
                .DefaultBuilder();

Configure でメッセージのアセンブリ タイプを指定しませんでした。それを追加すると、問題は解決しました。

于 2013-06-01T22:05:55.823 に答える
0

この問題は、OP のリンクされた質問に似ています。シリアライゼーション方法は、送信者とサーバーの間で一致する必要があることがわかりました。サーバー側にカスタム初期化を追加し、defaultbuilder と json シリアライザーを追加して、メッセージが正しく機能するように Web 側に合わせる必要がありました。

于 2013-03-28T18:02:36.083 に答える