【发布时间】:2013-07-09 15:38:02
【问题描述】:
我有一个从我的应用程序连接到的远程 WCF Web 服务。
应用程序可能在具有多个 IP 地址(或多个物理网络接口)的服务器上运行
我需要确保我可以控制用于出站请求的 IP 地址,而不是按照常规指标规则仅使用“首选”接口。
这样做的原因是软件的多个副本将在同一台机器上运行,每个副本都绑定到特定的 IP 地址以进行自己的操作,并且所连接的远程服务需要知道正在使用哪个稍后再连接(因为地址错误意味着连接到错误的服务)
对于旧版 ASMX 服务,这是通过覆盖为服务生成的部分类上的 GetWebRequest(Uri uri) 来完成的。但我完全不知道如何使用 WCF 来做到这一点。
在unrelated SO post 上,MVP @JohnSaunders 建议这可以通过接管 WCF 使用的整个传输机制来实现。但我也还没想好怎么做。
【问题讨论】:
-
@BradChristie 第一个答案是操作系统级别,第二个答案不适用于 WCF,仅适用于原始 SOAP 请求,因此为什么该问题没有可接受的答案。
-
顺便说一句,根据 IP 地址来决定要连接到哪个实例是……一个次优的解决方案。
-
你检查了吗this link
-
“被连接的远程服务需要知道稍后使用哪个 [IP 地址] 连接回它” - 对我来说,但请更正如果我错了,这看起来像你试图解决一个太低级别的架构问题,如果可能的话。这不是要求双工通道,还是不能让客户端轮询远程 Web 服务而不是让客户端回调?
标签: c# wcf wcf-binding