WCFサービスを使用していますが、クライアント側のコードを変更せずに、MachineNameやApplicationNameなどの呼び出し元の詳細情報を知る方法はありますか?
基本的に、これらの情報を渡すようにクライアントコードを変更することはできません。
サーバー側でSystem.Web.HttpContextを使用してこの情報を追跡しようとしましたが、HttpContext.CurrentがNULLです。それは適切な使い方ではないと思います。
なにか提案を?
ありがとうサラ
WCFサービスを使用していますが、クライアント側のコードを変更せずに、MachineNameやApplicationNameなどの呼び出し元の詳細情報を知る方法はありますか?
基本的に、これらの情報を渡すようにクライアントコードを変更することはできません。
サーバー側でSystem.Web.HttpContextを使用してこの情報を追跡しようとしましたが、HttpContext.CurrentがNULLです。それは適切な使い方ではないと思います。
なにか提案を?
ありがとうサラ
私はこの記事を通して答えを見つけました:OrcasのクライアントIPアドレス。
そして、ここにコードのスニペットがあります(.NET 3.5を使用):
// Track the IP address and port of the calling client
OperationContext context = OperationContext.Current;
MessageProperties properties = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
Trace.TraceInformation("Receive a document from {0}:{1} via {2}", endpoint.Address, endpoint.Port, properties.Via.AbsoluteUri);
WCF 3.5でIPアドレスを取得できますが、それだけです(リターンURLを取得する可能性のあるデュプレックスサービスは別として)