获取wcf服务的已连接客户端列表

时间:2009-11-03 23:53:48

标签: c# wcf .net-3.5 ip net.tcp

如何枚举服务主机的所有连接客户端的某种位置标识符?我正在使用双工连接进行长时间运行计算。服务主机是一个单身人士。

我可以弄清楚(在.net 3.5中)调用客户端的ip,但我不确定如何获取所有连接客户端的IP。

2 个答案:

答案 0 :(得分:2)

默认情况下,WCF会推广使用“每次通话”服务,例如:您的客户端调用,请求被处理,然后客户端立即再次断开连接。

WCF不适合自身,也不适合长时间运行的连接 - 所以你不能真正“枚举当前连接的用户”,因为没有(或只有一小部分秒)。

WCF与Windows域服务器不同,您登录并长时间保持登录状态。

答案 1 :(得分:1)

我认为没有任何内置功能,但构建跟踪IServiceBehavior + IDispatchMessageInspector非常容易,它会在将调用分派给服务impl之前检查RemoteClientEnpointMessageProperty并将客户端IP粘贴到共享列表,并在呼叫/会话结束时将其删除。