【问题标题】:WCF Sessions - Servic Fabric Stateful ServiceWCF 会话 - 服务结构状态服务
【发布时间】:2018-07-25 19:20:48
【问题描述】:

根据https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-services-communication-wcf提供的文档

WCF 中的有状态服务是否支持会话?

尝试了以下属性,但它不起作用。

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]

公共类 CalculatorService : ICalculator

[ServiceContract(SessionMode=SessionMode.Required)]

公共接口ICalculator


我需要对 WCFCommunicationListener 进行任何更改以支持会话吗?

protected override IEnumerable<ServiceReplicaListener> CreateServiceReplicaListeners()
    {
        return new[]
        {
            new ServiceReplicaListener( (context) =>
                new WcfCommunicationListener<ICalculator>(context, new CalculatorService(),WcfUtility.CreateTcpListenerBinding(),"WCFServiceEndpoint")
            )
       }; 
    }

【问题讨论】:

    标签: azure-service-fabric


    【解决方案1】:

    我可以使用以下代码在 WCF 状态服务中实现会话。

    protected override IEnumerable<ServiceReplicaListener> CreateServiceReplicaListeners()
        {
            return new[]
            {
                new ServiceReplicaListener( (context) =>
                 {
                    var wcfCommunicationListener = new WcfCommunicationListener<ICalculator>(context, new CalculatorService(),WcfUtility.CreateTcpListenerBinding(),"WCFServiceEndpoint");                                        
                    wcfCommunicationListener.ServiceHost.Description.Behaviors.Remove(typeof(ServiceBehaviorAttribute));
                    wcfCommunicationListener.ServiceHost.Description.Behaviors.Add(new ServiceBehaviorAttribute() { InstanceContextMode = InstanceContextMode.PerSession});                    
                    return wcfCommunicationListener;
                 }   
                )
           }; 
        }
    

    【讨论】:

      猜你喜欢
      • 2016-12-04
      • 1970-01-01
      • 1970-01-01
      • 2017-05-23
      • 2012-11-08
      • 2016-08-04
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多