Azure Service Fabric - 部署失败,剩余1个分区

时间:2015-11-11 18:29:29

标签: azure-service-fabric

我一直在使用Service Fabric,成功构建,部署和测试了多项服务,但我刚刚完成构建的服务在部署时失败(请参阅下面的错误)。在诊断中,我尝试使用VS模板创建和部署一个全新的服务(没有代码更改),也不会部署 - 同样的错误。但是,计算器SDK示例部署得很好。

我在下面的错误中找不到构建其中一个分区的错误:

Service Status:
fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Service Status:
fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Service Status:
fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Service Status:
fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Service Status:,fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Something is taking too long, the application is still not ready.
Finished executing script 'Get-FabricApplicationStatus.ps1'.
Time elapsed: 00:01:48.0681346
The thread 0x37fc has exited with code 0 (0x0).
The thread 0x4fe4 has exited with code 0 (0x0).

获得服务的健康状况如下:

    PS C:\WINDOWS\system32> Get-ServiceFabricServiceHealth -ServiceName fabric:/DataFabricServiceApplication/DataFabricService


    ServiceName           : fabric:/DataFabricServiceApplication/DataFabricService
    AggregatedHealthState : Error
    UnhealthyEvaluations  :
                            Unhealthy partitions: 100% (1/1), MaxPercentUnhealthyPartitionsPerService=0%.

                            Unhealthy partition: PartitionId='3eebd943-097d-4568-ad7e-d37c621a888b', AggregatedHealthState='Error'.

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

    PartitionHealthStates :
                            PartitionId           : 3eebd943-097d-4568-ad7e-d37c621a888b
                            AggregatedHealthState : Error

    HealthEvents          :
                            SourceId              : System.FM
                            Property              : State
                            HealthState           : Ok
                            SequenceNumber        : 10
                            SentAt                : 11/11/2015 07:16:02
                            ReceivedAt            : 11/11/2015 07:16:03
                            TTL                   : Infinite
                            Description           : Service has been created.
                            RemoveWhenExpired     : False
                            IsExpired             : False
                            Transitions           : Warning->Ok = 11/11/2015 07:16:03, LastError = 01/01/0001 00:00:00

有谁知道为什么这不会部署/我怎么能到达底部?我见过其他人有同样的错误,但没有找到任何解决方案。

5 个答案:

答案 0 :(得分:2)

对服务运行状况的不健康评估会向您显示出现问题的分区。您可以继续深入了解该分区的运行状况(Get-ServiceFabricPartitionHealth 3eebd943-097d-4568-ad7e-d37c621a888b)。我的猜测是,您会看到来自Error的{​​{1}}事件说该分区低于最小副本集大小。

然后你可以深入了解复制品的健康状况(System.FM)。 我发现这种情况很多,因为副本无法打开(由于配置问题或服务副本代码中的错误)。如果是这种情况,您将在副本上看到一个事件,说明它有什么问题(例如,打开需要很长时间或打开失败并显示错误代码等),否则副本将继续回收。

答案 1 :(得分:1)

扩展了@MarkD的说法我遇到了同样的问题,我的快速解决方案是将代码推送到我的存储库然后删除/重新克隆它。下载克隆并重建它后,我没有遇到部署问题。

答案 2 :(得分:0)

不是答案,但我可以节省你一些时间。我在一台计算机(我的笔记本电脑)上出现此错误,另一台在Azure VM中运行完全相同的代码完全没问题。

简短回答 - 我现在在我构建的模板上运行我的所有调试,该模板具有WS2012R2 / VS2015和SF SDK。每当我遇到这个bug时,我都会将源代码提交给团队服务器,删除VM,重新创建它,获取源代码并继续运行。需要大约10分钟,并且在这些讨厌的问题上节省了大量时间(没有抱怨 - 这在发布前/预览阶段并不罕见。)

我怀疑在调试/重建/调试/重建周期中,SF中的某些内容会破坏。我已经尝试重置,删除/重新安装一路删除SDK和VS但一旦启动没有任何清除错误。也许有某种注册表损坏在重新安装时无法重置?我记得看到其中一条痕迹抱怨性能计数器丢失而另一位用户发现同样的事情,但我无法再跟踪它了。一旦它再次发生,我会尝试再看一点。

答案 3 :(得分:0)

在CreateServiceReplicaListeners方法中捕获/记录错误..

  1. 可能是您更新了本地(dev)服务结构集群的发布配置文件 确保您使用本地(dev)群集的正确配置文件 Local.1Node和Local.5Node中的ApplicationParameters

  2. ServiceManifest

  3. 中不存在端点
  4. Listenersettings错了.. 等

答案 4 :(得分:0)

在我的情况下,该服务的网址错误,我输入了 结构:/XXX.User.Application/XXX.Services.UserService

结构:/XXX.User.Application/XXX.Services.User