WCF:如何获取主机IP或服务器名称

Kev*_*sen 15 wcf

我有一个WCF服务,通过IIS在多个Web服务器上托管.我有一个记录方法,记录对数据库的调用,我想记录正在执行调用的服务器.

有谁知道如何获取WCF调用正在执行的主机服务器名称或IP地址?

Tom*_*lek 13

使用Dns.GetHostName(),因为获取计算机的名称要比主机IP好得多.考虑主机有多个IP地址,具有虚拟网卡(VMWare)的情况.


Dio*_*ion 5

这对我们有用.确保您具有对System.ServiceModel的引用.然后在您的服务方法中实现以下代码:

var context = System.ServiceModel.OperationContext.Current;

RemoteEndpointMessageProperty property = (RemoteEndpointMessageProperty)context.IncomingMessageProperties[RemoteEndpointMessageProperty.Name];

string externalIP = property.Address;
Run Code Online (Sandbox Code Playgroud)

  • 它是客户端IP地址,而不是主机. (4认同)