将服务结构应用程序部署到公共服务结构集群后,“分区低于目标副本或实例计数”错误

时间:2016-01-20 05:43:19

标签: azure-service-fabric

我创建了一个服务结构无状态可靠服务,其中我使用OWIN来托管Web API。当我将应用程序部署到本地群集时,它工作正常,我可以调用API。

当我将应用程序部署到公共集群时,部署已成功完成,但是当我使用Service Fabric Explorer检查集群时,

复制品似乎处于“In Build”状态一段时间, 然后它移动到“警告”状态,最后结构浏览器中的整个树变红,并且分区下没有更多副本。 并将健康状态显示为错误。 显示错误“分区低于目标副本或实例计数”。

我还使用了允许的端口来创建OWIN Web服务器。

当我在本地群集中部署应用程序时,不会发生这种情况。 Service Fabric Explorer Screenshot for public clusterService Fabric Explorer Screenshot for Local Cluster

7 个答案:

答案 0 :(得分:15)

大多数情况下,此错误实际上只是意味着“我们无法启动您的服务”。如果服务中的未处理异常阻止其启动,则可以在Service Fabric资源管理器中深入查看服务实例或副本,以便在多次尝试后无法启动时查看堆栈跟踪。

BTW,我建议使用较新的基于Web的Service Fabric Explorer。只需将Web浏览器指向群集上的端口19080即可:例如http://mycluster.eastus.cloudapp.azure.com:19080/Explorer/index.htm

答案 1 :(得分:10)

我的身边只有一点评论......在这个错误上花了好几个小时后,我的C:\驱动器上出现了磁盘空间不足的问题。将可用空间从大约3GB增加到8GB后,错误消失了。

如上所述:https://github.com/Azure/service-fabric-issues/issues/15

  

默认安装需要大约10Gb的磁盘空间

答案 2 :(得分:3)

我遇到了这个问题,这是配置错误。

端口19080上的服务Fabric Explorer的错误说:

Error event: SourceId='System.FM', Property='State'.

分区低于目标副本或实例计数。 fabric:/ MyApp / MyService 3 2 [partitionid]   N / P RD _Node_0向上[长数字]   (显示1个复制品中的1个。可用副本总数:1。)

在我的ApplicationManifest.xml中,我有:

  <Service Name="MyService">
  <StatefulService ServiceTypeName="MyServiceType" TargetReplicaSetSize=**"3"** MinReplicaSetSize=**"2"**>
    <SingletonPartition />
  </StatefulService>
</Service>

将MinReplicaSetSize减少到1并将TargetReplicaSetSize减少到1并重新发布解决了我的问题。

Classic Eye-Dee-Ten-Tee(ID10T)配置问题:-D

答案 3 :(得分:1)

另一个原因是,如果您创建了无状态服务(请检查ApplicationPackageRoot / ApplicationManifest.xml),但是该服务实现了有状态服务。

答案 4 :(得分:0)

我正在使用Azure Service Fabric部署我的应用程序并收到此错误。

经过调查,我发现这是因为“TargetReplicaSetSize”和“MinReplicaSetSize”超出了我的节点数。

要解决此问题,请在ApplicationParameters / cloud.xml中将“PartitionCount”,“TargetReplicaSetSize”“MinReplicaSetSize”更改为1,然后重新部署该应用程序:

<?xml version="1.0" encoding="utf-8"?> <Application xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="fabric:/Voting" xmlns="http://schemas.microsoft.com/2011/01/fabric"> <Parameters> <Parameter Name="xxx_PartitionCount" Value="1" /> <Parameter Name="xxx_MinReplicaSetSize" Value="1" /> </Parameters> </Application>

答案 5 :(得分:0)

我刚刚遇到了相同的错误消息。原来我的容器还没有建好。花费了几分钟,但状态更改为“确定”。

答案 6 :(得分:0)

我今天遇到了同样的问题,除了其他答案中提到的可能原因外,另一个可能的原因是您正在将旧版本用于SF runtime / SDK / library。

请确保项目中的SF运行时和SDK及引用的DLL是最新的!