10

我有一个由无状态服务调用的有状态服务,在 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))
            };

我尝试按照本教程进行操作,但该示例适用于无状态的示例。

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

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

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

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

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

4

1 回答 1

11

在您的有状态服务中,在 method 中CreateServiceReplicaListeners,使用以下代码:

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

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

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

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

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

并重建客户端。

于 2017-10-15T08:06:05.500 回答