有没有办法让WCF服务知道呼叫来自哪台机器?

有没有办法让WCF服务知道呼叫来自哪台机器?,wcf,wcf-client,Wcf,Wcf Client,我有一个WCF服务,在不更改客户端任何代码的情况下,是否有方法可以知道调用方的详细信息,例如MachineName和ApplicationName 基本上,我无法更改客户端代码来传递这些信息 我试图在服务器端使用System.Web.HttpContext跟踪此信息,但HttpContext.Current为NULL。我想这不是正确的用法 有什么建议吗 谢谢 Sarah您可以在WCF 3.5中获得IP地址,但仅此而已(将双工服务放在一边,在此期间您可以获得返回URL)我通过本文找到了答案: 下面

我有一个WCF服务,在不更改客户端任何代码的情况下,是否有方法可以知道调用方的详细信息,例如MachineName和ApplicationName

基本上,我无法更改客户端代码来传递这些信息

我试图在服务器端使用System.Web.HttpContext跟踪此信息,但HttpContext.Current为NULL。我想这不是正确的用法

有什么建议吗

谢谢
Sarah

您可以在WCF 3.5中获得IP地址,但仅此而已(将双工服务放在一边,在此期间您可以获得返回URL)

我通过本文找到了答案:

下面是一段代码(使用.NET 3.5):


我知道您说您不能更改客户端代码,但是如果服务应该报告哪些客户端正在使用该服务,那么合同应该指定clientId/userId/sourceId,这是首选解决方案。
// 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);