【发布时间】:2014-06-27 06:15:05
【问题描述】:
我想将附加值(GUID,每个请求不同)传递给 WCF IClientMessageInspector 接口中的 BeforeSendRequest。此值不包含在请求对象中。如何将此值传递给BeforeSendRequest 方法?
【问题讨论】:
-
写一个单例类,并在 BeforeSendRequest 方法中读取这个值。
-
GUID值和消息有什么联系?
-
谢谢先生...我有使用 WCF 开发的 API。客户端应用程序连接到此 API(服务 1)并且 API 调用另一个 WCF 服务(服务 2)来获取数据。因此,客户端生成 GUID 并将其与请求一起发送。我想将此 GUID 附加到第二个 wcf 请求的标头(服务 1 到服务 2)。我在服务 1 中实现了 IClientMessageInspector 接口。所以现在我想将该 GUID 传递给 BeforeSendRequest 以附加到 WCF 标头。我该怎么做。
-
如果可以修改API的代码,可以从OperationContext.Current.IncomingMessageHeaders中获取传入的guid,并将这个guid添加到OperationContext.Current.OutgoingMessageHeaders中。 link
-
如果你不能实现 IDispatchMessageInspector 和 IClientMessageInspector 接口。读取 AfterReceiveRequest 中的传入 guid,将其存储在 threadstatic 变量中,然后添加到 BeforeSendRequest 中的传出标头中。
标签: c# .net web-services wcf iclientmessageinspector