Service Fabric 有状态服务远程处理 V2

Service Fabric Stateful Service Remoting V2

我在 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 但是这个例子是针对 stateless 的。

我尝试更改其中的代码但没有成功。

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

教程中也没有关于如何或在何处使用此代码的说明

var proxyFactory = new ServiceProxyFactory((c) =>
   {
       return new FabricTransportServiceRemotingClientFactory();
   });

我卡住了,有人可以告诉我如何让它工作吗?

在您的有状态服务中,在方法 CreateServiceReplicaListeners 中,使用此代码:

protected override IEnumerable<ServiceReplicaListener> CreateServiceReplicaListeners()
{
    return this.CreateServiceRemotingReplicaListeners();
}

并在定义远程服务 接口 的文件中添加:

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

(例如,在 using 命名空间列表下方。)

添加端点: <Endpoint Name="ServiceEndpointV2" />

并重建客户端。