我有一个WCF服务并且没有在客户端更改任何代码,有没有办法可以知道调用者的详细信息,例如MachineName和ApplicationName?
基本上,我无法更改客户端代码以传递这些信息。
我尝试在服务器端使用System.Web.HttpContext来跟踪此信息,但HttpContext.Current为NULL。我想这不是它的正确用法。
有什么建议吗?
由于 萨拉
答案 0 :(得分:2)
我通过这篇文章找到了答案:Client IP addresses in Orcas。
以下是代码片段(使用.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);
答案 1 :(得分:0)
您可以在WCF 3.5中获取IP地址,但就是这样(保留双工服务,在此期间您可能会获得返回URL)