1

やあ、

WAS を使用して TCP 経由で通信する IIS7 でホストされている WCF サービスがあります。サービス側では、呼び出されたサービス操作をログに記録するために 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アドレス を受け取る場合があります (ここにあるように)。::1IPv4と同等の IPv6127.0.0.1です。

さらに、すべての IP アドレスにホスト名が関連付けられているわけではなく、ピリオドがないものもあります (たとえば、「localhost」または別のローカル LAN マシン名を取得した場合)。

于 2012-03-30T07:17:33.753 に答える