WCF 操作上下文返回网关而不是客户端 IP 地址

本文关键字:客户端 IP 地址 网关 操作 操作上 上下文 返回 WCF | 更新日期: 2023-09-27 18:32:34

>im 对于开发 WCF 服务来说有点陌生。我正在使用此代码获取客户端 IP 地址,

private String getRemoteIP()
{
    OperationContext context = OperationContext.Current;
    MessageProperties prop = context.IncomingMessageProperties;
    RemoteEndpointMessageProperty endpoint = prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
    return endpoint.Address;
}

在我的本地主机中,它工作正常,但是当我在服务器中安装我的服务进行测试时,我得到的回报是客户端的网关,任何关于原因的见解都可以???

WCF 操作上下文返回网关而不是客户端 IP 地址

试试这个:首先启用 AspNet 兼容模式,如下所示:

<system.serviceModel>
        <!-- this enables WCF services to access ASP.Net http context -->
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>

然后,您可以通过以下方式获取IP地址:

HttpContext.Current.Request.UserHostAddress