首页 文章

ServiceFabric状态服务部署疑难解答

提问于
浏览
0

使用ServiceFabric版本5.1.163.9590中的有状态服务,我试图部署一个演示应用程序,其中包含三个管理自己状态的WebApi服务 .

三个服务中的两个启动并创建其分区而没有错误,但最后一个事件发生了一系列警告和错误,错误详细信息有这个有趣的消息:

Microsoft.ServiceFabric.Replicator.LoggingReplicator : GetCopyState The parameter copyContext is null. This might be caused by deployment bug that 'hasPersistedState' attribute is false.

我找不到此错误消息的任何外部引用 .

有没有办法从应用程序和服务部署方面或从集群管理方面纠正这个问题?

1 回答

  • 2

    该错误表示您具有持久状态的有状态服务,但在部署服务时没有告诉Service Fabric .

    需要设置一个标志,以向Service Fabric指示有状态服务具有持久状态(而不是“易失性”状态,仅指内存中的状态) .

    在ServiceManifest.xml中,确保在服务类型上设置了此标志:

    <ServiceTypes>
          <StatefulServiceType ServiceTypeName="MyServiceType" HasPersistedState="true" />
      </ServiceTypes>
    

    然后,如果您通过PowerShell进行部署,请确保在创建服务实例时设置此标志:

    PS > New-ServiceFabricService -Stateful -HasPersistedState -ServiceTypeName "MyServiceType" ...
    

相关问题