0

NServiceBus コマンドの中には、誰がいつコマンドを発行したかを追跡する必要があるものがあります。これを実装するための推奨される方法については非常に確信が持てません:

基本クラスを作成しMessageBase、追加public Dictionary<string, string> Headers;し、実装する必要がありますIMutateOutgoingMessagesか?

MessageContext に追加する必要がありますか? その場合、すべてのメッセージ (ヘッダーが必要) が送信される前にバスがそれを追加するようにするにはどうすればよいですか?

すでに完了していて、アクセス方法がわからないだけですか? (未加工の MSMQ メッセージにユーザーがいるようです...)

4

1 に答える 1

4

NServiceBus は、"NServiceBus.TimeSent" ヘッダーを使用して、メッセージが送信された時間を既に提供しています。

組み込みの NServiceBus ヘッダー ディクショナリを使用し、MessageBase をスキップします

ユーザー ID のアタッチは、発信メッセージ ミューテーターで行うのが最適です。HttpContext などから ID を取得し、ヘッダーとして追加するだけです。

http://support.nservicebus.com/customer/portal/articles/860492

時間を取得するには (ハンドラー/サガで):

Bus.CurrentMessageContext.TimeSent

于 2013-02-23T07:02:37.833 に答える