1

我正在尝试在 .Net 4.0 中使用内置的 WCF 服务,并在 html 页面中使用自定义业务功能(使用 jquery),并希望在 WCF 服务中检索客户端 IPAddress,无论谁试图通过定义的 html 页面访问我的服务。WCF 服务和 html 页面(利用 WCF 服务)设置/托管在 IIS 中的同一台 Windows 服务器虚拟机上。

在此过程中,我在 WCF 服务中使用以下代码来检索客户端的 IPAdress 信息。

代码:

OperationContext context = OperationContext.Current;
MessageProperties properties = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
string address = endpoint.Address;

配置了一个负载均衡器(服务部署在两台服务器机器上),我们使用虚拟 url 来访问 WCF 服务。

当尝试通过机器名称访问 WCF 服务时,该服务能够正确检索客户端 IPAddress,但是当我使用虚拟 URL(其中请求可以由任何已配置机器上的负载均衡器处理)时,该服务是检索服务器 IPAddress 而不是客户端 IPAddress 详细信息。

我被这个问题困住了,在 OperationConetext 中没有找到任何有助于检索客户端 IpAddress 的属性。谁能帮我解决我的问题。

4

0 回答 0