添加用户的正确位置和NServiceBus中发出命令的时间在哪里?

时间:2013-02-22 22:11:56

标签: nservicebus

我的一些NServiceBus命令需要跟踪发出命令的人员和时间。我不确定推荐的实现方法:

我应该创建基类MessageBase,添加public Dictionary<string, string> Headers;并实施IMutateOutgoingMessages吗?

是否应该添加到MessageContext中?如果是这样,我如何确保总线在发送每条消息(需要标题)之前添加它?

它已经完成了,我只是不知道如何访问它? (看起来用户在原始MSMQ消息中......)

1 个答案:

答案 0 :(得分:4)

NServiceBus已经为您提供了使用“NServiceBus.TimeSent”标头发送邮件的时间。

使用内置的NServiceBus头字典并跳过MessageBase

最好在传出消息mutator中添加用户ID。只需从例如HttpContext中获取ID并将其添加为标题。

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

获取时间(在你的处理程序/传奇中):

Bus.CurrentMessageContext.TimeSent