首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跟踪连接到WCF服务的用户数?

跟踪连接到WCF服务的用户数?
EN

Stack Overflow用户
提问于 2009-07-23 10:59:42
回答 1查看 2.1K关注 0票数 4

我有一个net tcp PerSession WCF服务,我当前用于跟踪已连接用户(活动客户端)数量的逻辑是使用服务构造函数和心跳机制。

在构造函数中,我只是递增一个静态成员,在向客户端发送心跳的过程中,如果这些异常之一引发( TimeoutException,FaultException,CommunicationObjectAbortedException),我就会递减这个数字。

EN

回答 1

Stack Overflow用户

发布于 2009-07-23 11:26:13

您可以创建自己的IInstanceContextInitializer实现,一旦创建了新的InstanceContext,就会收到通知。

代码语言:javascript
复制
 public class MyInstanceContextInitializer : IInstanceContextInitializer
  {
    public void Initialize(InstanceContext instanceContext, Message message)
    {
      // hook up to events to get notified about changes in the state of this instance context.
      // remember refernce to it
    }
  }

并将其附加

代码语言:javascript
复制
  public class InstanceInitializerBehavior : IEndpointBehavior
  {

    public void AddBindingParameters(ServiceEndpoint serviceEndpoint, BindingParameterCollection bindingParameters)
    {    }

    //Apply the custom IInstanceContextProvider to the EndpointDispatcher.DispatchRuntime
    public void ApplyDispatchBehavior(ServiceEndpoint serviceEndpoint, EndpointDispatcher endpointDispatcher)
    {
      MyInstanceContextInitializer extension = new MyInstanceContextInitializer();
      endpointDispatcher.DispatchRuntime.InstanceContextInitializers.Add(extension);
    }

    public void ApplyClientBehavior(ServiceEndpoint serviceEndpoint, ClientRuntime behavior)
    {    }

    public void Validate(ServiceEndpoint endpoint)
    {    }
  }

一旦您获得了对InstanceContext的访问权限,您就可以使用IncomingChannels属性来获取传入服务实例的会话通道。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1171001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档