【发布时间】:2013-06-14 12:14:34
【问题描述】:
我在使用 NServiceBus 解耦前端 (MVC) 和后端 (Azure WorkerRole) 时 HttpContext.Current 为 NULL 时遇到问题。 我正在使用 IMutateTransportMessages 来拦截传出和传入的 TransportMessages。我在 Session(MVC 前端)中有一些数据,需要使用 Mutators 自动将其附加到传出的 TransportMessages。类似地,我需要将一些来自传入 TransportMessages 的数据注入到 Session 中。
为了更好地理解,让我们看一下我的简化场景:
前端:
- 我在会话中有数据D1
- 我将 CommandX 发送到 NServiceBus >> MutateOutgoing [从 Session 中获取数据 D1 并将其插入 TransportMerssage 标头 H1] >> 消息发送到总线李>
后端: 3. 我收到带有标题 H1 的 CommandX,其中包含数据 D1 4.我做一些事情 5. 我将数据D2添加到消息头H2中,并将CommanX返回给NServiceBus
前端: 6. 我在 NServiceBus >> MutateIncomming 中得到 CommandX “响应” [我在后端的标头 H2 中有数据 D2,我希望将这些数据注入会话,所以我可以在 MVC 前端使用它,但我不能,因为 HttpContext.Current 是 null]
任何想法,为什么我可以从 MutateOutgoing 而不是从 MutateIncomming 访问 Session?有什么解决方法吗?
谢谢! 马丁
【问题讨论】:
标签: c# nservicebus