OperationContext context = OperationContext.Current;
MessageProperties properties = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
string ip = endpoint.Address;
通过以上方法可以在WCF端获取客户端的IP,我的客户端是Silverlight程序,我用普通的http单工通信这种方法是管用的,但如果我用的是Duplex的http双工,这种方法取得的ip就是空字符串。请问一下这是什么原因?
单工也就是我们普通的请求/答复 模式 当你服务端发出请求 服务端会等待客户端的响应结果 而WCF中的双工 是不会等待 服务端会继续走服务端的代码 客户端处理服务端的请求 处理完毕向服务器端响应 这是我的理解 不一定正确 互相讨论哈
Duplex的http双工通信的前提是双方都知道彼此的地址