Service Fabric Stateful Service Remoting V2

时间:2017-10-14 11:05:05

标签: azure-service-fabric service-fabric-stateful

我在Visual Studio 15.4上运行的.Net Standard Asp.net Core 2.0中有无状态服务调用的状态服务。 我无法使Service Remoting V2工作。

适用于V1的有状态服务中的旧代码无效

  protected override IEnumerable<ServiceReplicaListener> CreateServiceReplicaListeners()
    {
        return new List<ServiceReplicaListener>()
            {
                new ServiceReplicaListener((context) =>this.CreateServiceRemotingListener(context))
            };

我尝试按照tutorial进行操作,但示例适用于无状态

我试图更改此代码但没有成功。

protected override IEnumerable<ServiceReplicaListener> CreateServiceReplicaListeners()
    {
        return new List<ServiceReplicaListener>()
            {
                new ServiceReplicaListener((c) =>new FabricTransportServiceRemotingListener(c, this))
            };
    }

此外,在教程

中没有关于如何或在何处使用此代码的说明
var proxyFactory = new ServiceProxyFactory((c) =>
   {
       return new FabricTransportServiceRemotingClientFactory();
   });

我被困了,有人可以告诉我如何让它发挥作用吗?

1 个答案:

答案 0 :(得分:10)

在有状态服务中,在方法protected override IEnumerable<ServiceReplicaListener> CreateServiceReplicaListeners() { return this.CreateServiceRemotingReplicaListeners(); } 中,使用以下代码:

[assembly: FabricTransportServiceRemotingProvider(RemotingListener = RemotingListener.V2Listener, RemotingClient = RemotingClient.V2Client)]

在定义远程服务界面的文件中,添加以下内容:

using

(例如,在<Endpoint Name="ServiceEndpointV2" />名称空间列表的正下方。)

添加端点: {{1}}

重建客户。