フロントエンド (MVC) とバックエンド (Azure WorkerRole) を分離する NServiceBus を使用して、HttpContext.Current が NULL になるという問題があります。IMutateTransportMessages を使用して、送信および受信 TransportMessages をインターセプトしています。セッション (MVC フロントエンド) にいくつかのデータがあり、Mutators を使用して発信 TransportMessages に自動的に追加する必要があります。同様に、着信 TransportMessages からセッションにデータを挿入する必要があります。
理解を深めるために、単純化したシナリオを見てみましょう。
フロントエンド:
- セッションにデータD1があります
- CommandX を NServiceBus に送信します >> MutateOutgoing [セッションからデータD1を取得し、それを TransportMerssage ヘッダーH1に挿入します] >> メッセージがバスに送信されます
バックエンド: 3.データD1を含むヘッダーH1を持つCommandXを受信し ます。
フロントエンド: 6. NServiceBus で CommandX の「応答」を取得 >> MutateIncomming [バックエンドからのヘッダーH2にデータD2があり、このデータをセッションに挿入して MVC フロントで使用できるようにしたい-終了しますが、HttpContext.Current がnullであるため、できません]
MutateIncomming からではなく、MutateOutgoing からセッションにアクセスできるのはなぜですか? 回避策はありますか?
ありがとうございました!マーティン