c# - 如何在发出请求之前将 WCF Http 客户端绑定(bind)到特定的出站 IP 地址

标签 c# wcf wcf-client basichttpbinding

我希望我的请求通过特定的 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/

相关文章:

c# - 在没有 Thread.Sleep(300) 的情况下,如何在此类中获得真正的随机性?

c# - C# 中 byte 和 Byte 数据类型的区别

c# - 为什么以辅助角色托管 WCF 服务

c# - 使用来自 WCF 客户端的非 wcf SOAP 错误(已定义 soap 错误)

c# - 如何将 C++/CLI 程序编译成 .lib 并将其与纯非托管 C++ 程序链接?

c# - C# 有 int8 和 uint8 吗?

wcf - 要求使用 WCF 的 SSL 会导致 "The HTTP request was forbidden with client authentication scheme ' 匿名“错误?

wcf - 如何通过错误处理有效地处理 WCF 服务

c# - 我的 ASMX 代理方法中的这些额外参数是什么?

javascript - 使用 JavaScript 来使用 WCF,但保持它对于所有客户端来说足够通用?