如何在服务总线中正确地重新发送消息 headers

How properly resend message headers in a service bus

我一直在从头开始构建一个 "stupid" 服务总线,它获取寻址到各种不同服务的消息(在 headers 中使用凭据令牌),并且需要将这些消息中继到服务它拥有的代理客户端。

一个简短的代码片段解释 -

    ServiceBus: IServiceBus {
    SomeService clientProxy = new SomeService();
    clientProxy.OperationThatRequiresTokensHere(); //this is the way the message is relayed.
}

我一直在尝试实现 IDispatchMessageInspector 并使用 AfterRequest 和 BeforeReply 来:

一个。从 headers 获取值并将它们作为 object 发送到 BeforeSend.

乙。在 BeforeSend 中将它们插入到正确服务的代理客户端消息中。

我在这里滥用 IDispatch 了吗?这是正确的方法吗?请无视我现在关于服务总线的想法是否正确。

如果这不是解决问题的方法,您将如何收集消息 headers 并在代理消息转到原始服务时正确插入它们?

您正试图影响来自 WCF 服务模型管道中设计用于 inspect/edit 消息的扩展点的消息流。那是行不通的。