私の (シングルトン) WCF サービスでは、以下を使用してリモート (クライアント) エンドポイントの IP を正常に取得します。
private String getRemoteIP()
{
OperationContext context = OperationContext.Current;
MessageProperties prop = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint = prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
return endpoint.Address;
}
ただし、一方通行の契約である手順が 1 つあります。getRemoteIP を実行すると、このプロシージャは空の文字列を返します。これは、クライアント エンドポイントが一方向の呼び出しに関連していないためだと思います。このような場合にクライアント IP を取得する方法はありますか?