5

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

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

4

2 回答 2

2

默认情况下,WCF 提倡使用“每次调用”服务,例如,您的客户端调用,请求得到处理,然后客户端立即再次断开连接。

WCF 不太适合并且不适合长时间运行的连接 - 所以你不能真正“枚举当前连接的用户”,因为没有任何(或只有几分之一秒)。

WCF 不像 Windows 域服务器,您可以在其中登录并长时间保持登录状态。

于 2009-11-04T13:44:31.570 回答
1

我不认为有任何内置的东西,但是构建一个跟踪 IServiceBehavior + IDispatchMessageInspector 会很容易,它会在调用被分派到服务 impl 之前检查 RemoteClientEnpointMessageProperty 并将客户端 IP 粘贴到共享列表中,并在通话/会话结束时将其删除。

于 2009-11-04T06:53:28.197 回答