【发布时间】:2010-03-09 13:59:36
【问题描述】:
当请求有多个 IP 地址时,如何获取用于请求的服务器地址?
例如
- 服务器的地址为 10.0.0.1 和 10.0.0.2。
- 在处理请求时,服务器服务需要知道客户端是使用 10.0.0.1 还是 10.0.0.2 来连接它。
目前我只发现
OperationContext.Current.EndpointDispatcher.EndpointAddress和OperationContext.Current.Channel.LocalAddress包含来自 .config 的地址(例如 localhost)OperationContext.Current.IncomingMessageProperties.Via包含客户端用于连接服务器的 URL(但这可能只是客户端主机文件中的名称)。
编辑:仍在寻找解决方案...
【问题讨论】:
-
你是指传入的客户端吗?
-
不,我需要服务器的 IP。例如。服务器有 10.0.0.1 和 10.0.0.2 - 客户端使用什么地址连接到服务器?
-
这是在负载均衡的情况下吗?此服务器中是否有多个网络适配器?
-
两者都是。该服务具有一些不能通过 NLB 调用的维护功能。因为我无法绑定到特定的适配器(请参阅stackoverflow.com/questions/2326122/…),所以我试图在服务中处理这个问题。