Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取wcf服务的已连接客户端列表_C#_Wcf_.net 3.5_Ip_Net.tcp - Fatal编程技术网

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

C# 获取wcf服务的已连接客户端列表,c#,wcf,.net-3.5,ip,net.tcp,C#,Wcf,.net 3.5,Ip,Net.tcp,如何为servicehost的所有已连接客户端枚举某种位置标识符?我正在使用双工连接进行长时间运行的计算。服务主机是单例的 我可以计算出(在.net 3.5中)呼叫客户端的ip,但我不确定如何获取所有连接客户端的ip。我认为没有任何内置功能,但是构建一个跟踪IServiceBehavior+IDispatchMessageInspector非常容易,它将在调用发送到服务impl之前检查RemoteClientInputMessage属性,并将客户端IP粘贴到共享列表中,并在调用/会话结束时将其删

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


我可以计算出(在.net 3.5中)呼叫客户端的ip,但我不确定如何获取所有连接客户端的ip。

我认为没有任何内置功能,但是构建一个跟踪IServiceBehavior+IDispatchMessageInspector非常容易,它将在调用发送到服务impl之前检查RemoteClientInputMessage属性,并将客户端IP粘贴到共享列表中,并在调用/会话结束时将其删除。

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

WCF本身不适用于长时间运行的连接,也不适用于长时间运行的连接,因此您无法真正“枚举当前连接的用户”,因为没有任何用户(或仅在几分之一秒内)


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

很抱歉,我在帖子中不清楚,但我没有使用默认的服务行为。[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single,ConcurrencyMode=ConcurrencyMode.Multiple)]与InstanceContextMode.Single有一个实例的使用寿命比默认的“每次调用”模式更长。当前实现的服务使用回调约定在结果准备就绪时发送结果。客户端缓存它与服务器的连接,以便它们可以用于多个请求。连接是长期运行的。好吧-我认为这不是一个好主意,但我不知道你的设置细节;不幸的是,在WCF 3.5中,对管理和监视没有太多的支持-这将是“都柏林”项目的一部分-IIS7/的管理附加组件计划在.NET 4(2010年3月)之后的某个时间发布。