4

我使用 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

有谁知道为什么这不会部署/我如何才能深入了解?我见过其他人有同样的错误,但没有找到任何解决办法。

4

5 回答 5

2

对服务健康的不健康评估向您显示有问题的分区。您可以继续深入了解该分区的运行状况 ( Get-ServiceFabricPartitionHealth 3eebd943-097d-4568-ad7e-d37c621a888b)。我的猜测是,您会看到一个Error事件,System.FM即分区低于最小副本集大小。

然后您可以深入研究副本的健康状况 ( Get-ServiceFabricReplica 3eebd943-097d-4568-ad7e-d37c621a888b | Get-ServiceFabricReplicaHealth)。我见过很多发生这种情况的情况,因为副本无法打开(由于配置问题或服务副本代码中的错误)。如果是这种情况,您将在副本上看到一个事件,说明它有什么问题(例如,打开需要很长时间或打开失败并出现错误代码等),或者副本将继续回收。

于 2015-11-18T18:19:50.220 回答
1

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

于 2017-06-22T20:23:36.970 回答
0

不是答案,但我也许可以为您节省一些时间。我在一台机器(我的笔记本电脑)上遇到此错误,而另一台在 Azure VM 中运行完全相同的代码则完全没问题。

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

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

于 2015-11-28T01:58:30.563 回答
0

在我的情况下,服务的 url 错误,我输入了 fabric:/XXX.User.Application/XXX.Services.UserService

作为

面料:/XXX.User.Application/XXX.Services.User

于 2019-08-09T07:22:40.970 回答
0

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

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

  2. ServiceManifest 中不存在端点

  3. 侦听器设置错误..等等。
于 2017-03-11T15:39:59.650 回答