【问题标题】:Service Fabric Stateful Service Remoting V2Service Fabric 有状态服务远程处理 V2
【发布时间】:2018-03-26 09:49:48
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    添加端点: &lt;Endpoint Name="ServiceEndpointV2" /&gt;

    并重建客户端。

    【讨论】:

    • 您能否提供一些有关如何调用此设置的详细信息?与客户端一样。
    • 使用服务 url 和分区键(如果有状态)docs.microsoft.com/en-us/azure/service-fabric/…创建一个 ServiceProxy
    • 我已经这样做了,但它仍然不起作用。这个答案只是重复上面提到的 docs.microsoft.com 教程中的内容
    • 重要的一点是“[assembly: FabricTransportServiceRemotingProvider(RemotingListener = RemotingListener.V2Listener, RemotingClient = RemotingClient.V2Client)]”也应该添加到客户端程序集中,而不仅仅是服务。
    • 我最终不得不返回 Microsoft.ServiceFabric.Services.Remoting.Runtime.ServiceRemotingExtensions.CreateServiceRemotingReplicaListeners(this);并从 IService 继承
    猜你喜欢
    • 2018-05-07
    • 2017-07-26
    • 1970-01-01
    • 2017-09-17
    • 2021-02-15
    • 2017-06-22
    • 2018-08-17
    • 1970-01-01
    • 2019-04-05
    相关资源
    最近更新 更多