我有一个从我的应用程序连接到的远程 WCF Web 服务。
应用程序可能在具有多个 IP 地址(或多个物理网络接口)的服务器上运行
我需要确保我可以控制用于出站请求的 IP 地址,而不是按照常规度量规则仅使用“首选”接口。
这样做的原因是软件的多个副本将在同一台机器上运行,每个副本都绑定到特定的 IP 地址以进行自己的操作,并且连接到的远程服务需要知道正在使用哪一个来连接回稍后再进行(因为地址错误意味着连接到错误的服务)
对于传统的 ASMX 服务,这是通过覆盖GetWebRequest(Uri uri)
为服务生成的部分类来完成的。但我根本不知道如何用 WCF 做到这一点。
在不相关的 SO 帖子中,MVP @JohnSaunders 建议通过接管 WCF 使用的整个传输机制来实现这一点。但我还没有弄清楚如何做到这一点。