有些东西对我来说似乎很奇怪,我试图用反射器查看 WCF 内部,但请原谅我太难理解了:(。
当客户端 A 使用 wsDualHttpBinding 在服务器 B 上调用双工服务时,我在想客户端 A 在请求的标头中包含客户端基地址(回调的地址),如下所示
<a:ReplyTo>http://client.foo/29293-3287-2387-3291</a:ReplyTo>
.
但
OperationContext.Current.IncomingMessageHeaders.ReplyTo
返回空...
wsDualHttpBinding 如何知道客户端通道的地址????
有什么黑魔法吗?
解决方案
这是负责传输replyTo 地址的可靠会话。我们可以在 customBinding 中使用这些绑定元素来验证这一点
<reliableSession/>
<compositeDuplex/>
<oneWay></oneWay>
<textMessageEncoding></textMessageEncoding>
<httpTransport/>
删除reliableSession,您的服务不再有回调通道......