我正在使用Codeplex中的Simple Service Bus,并有一个处理程序,它为我提供了一条消息和一个IMessageContext。
public void Handle(MyEnquiryMessage message, IMessageContext context)
我将这两个存储在列表中并让处理程序完成。在将来的某个时刻,我会做一些处理并尝试通过获取我存储和调用的上下文来发送回复:
context.Endpoint.MessageBus.Reply(myResponse)
不幸的是,这会引发异常“对象引用未设置为对象的实例”。这种异步的回复方式是可行的还是“回复”只能在处理程序中使用?
答案 0 :(得分:0)
我不知道简单服务总线,但我猜你的上下文只在处理程序中有效。如果您想要发回回复,您需要从上下文中收集所需的所有数据,然后在稍后阶段进行“发送”。
即便如此,当它可能在处理相关消息类型的另一个端点中处理时,“稍后”执行进程听起来有点奇怪。没有更多的信息,很难说,但你的设计可能不是最佳的。
作为旁注:我认为投票可能是因为问题不是'NServiceBus':) ---也许用'esb'标记。