1

你好,

我有一个托管在 IIS7 中的 WCF 服务,它使用 WAS 通过 TCP 进行通信。在服务端,我实现了 IParameterInspector 来记录被调用的服务操作,但我还需要客户端 IP/名称。

我试过这个:

OperationContext.Current.IncomingMessageProperties[RemoteEndpointMessageProperty.Name].Address

但这总是会返回 "::1" 吗?如果我使用:

Dns.GetHostEntry(messageProperty.Address).HostName.Split('.').LastOrDefault()

该名称将始终是本地名称,即使客户端在不同的计算机上,服务也是如此?

此致

编辑1:如果我没看错,就无法获得IP,那么问题是是否有任何其他方式来指定客户端,可能是某种GUID,还是我应该使用的唯一会话ID?

4

1 回答 1

0

您可能会收到一个IPv6地址(就像您在此处看到的那样)。 ::1是 IPv6 等价127.0.0.1于 IPv4。

此外,并非所有 IP 地址都有与之关联的主机名,有些可能没有任何句点(例如,如果您获得 'localhost' 或另一个本地 LAN 机器名)

于 2012-03-30T07:17:33.753 回答