我希望我的请求通过特定的 IP 地址发出。有没有办法在 WCF 中做到这一点。为什么我需要这个的解释有点冗长,所以我不想进入那个。
这里是示例代码
string ipAddress = "192.168.0.32";
IService service;
ChannelFactory<IOmlService> factory = new ChannelFactory<IService>(new BasicHttpBinding(), new EndpointAddress("http://" + IPAddress + ":6996/IService"));
service = factory.CreateChannel();
service.Test();
这是一个示例场景,可以准确解释我正在寻找的内容。假设我的机器上有两个 IP(192.168.0.30 和 192.168.0.31)。两者都能打到192.168.0.32。如果我现在运行此代码,它将从我的任何 IP(.30 或 .31)命中 IP (.32)。我怎样才能强制它通过我的特定 IP(比如 .30)。有什么方法可以使用 WCF 做到这一点吗?
最佳答案
问题的答案是做不到。这是 Microsoft MVP 的答案
所以你想让客户端机器主动选择一个网络适配器接口(interface)(安装在它上面)来发送 WCF 请求?恐怕这超出了 WCF 的控制范围,因为 WCF 只关注以下地址:
** 当作为主机时,我们可以选择绑定(bind)到一个特定的主机名/地址来监听客户端请求 ** 当作为客户端时,我们可以选择发送请求的目标地址/主机名。
关于c# - 如何在发出请求之前将 WCF Http 客户端绑定(bind)到特定的出站 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3577248/