重新启动有状态服务结构应用程序

Restart stateful Service fabric application

如何重新启动服务结构有状态服务,实际上它是一个参与者服务。我想让它在本地工作。请注意,这是一个本地实例。

我尝试了以下 powershell 命令

Restart-ServiceFabricReplica -ServiceName fabric:/MyNameSpace.Dashboard.SfApp

但是我收到这个错误

Restart-ServiceFabricReplica : Cluster connection instance is null
At line:1 char:1
+ Restart-ServiceFabricReplica -ServiceName fabric:/MyNameSpace.Da ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [Restart-ServiceFabricReplica], NullReferenceException
    + FullyQualifiedErrorId : GetClusterConnectionErrorId,Microsoft.ServiceFabric.Powershell.RestartReplica

我也试过这个,但不知道这个长语法是怎么回事,不过还是同样的错误。

Restart-ServiceFabricDeployedCodePackage -ApplicationName fabric:/MyNameSpace.Dashboard.SfApp -NodeName "_Node_0" -ServiceManifestName "ServicePkg" -CodePackageName "Code" -ServicePackageActivationId 57f2ae77-6478-4f5d-af10-033bd4e4b4fa

我设法让它工作,但我后来发现这是预期的错误!

我第一次没有连接到实例!

Connect-ServiceFabricCluster -ConnectionEndpoint "localhost:19000"

然后我运行这个命令

Restart-ServiceFabricDeployedCodePackage -NodeName "_Node_0" -ApplicationName fabric:/MyNamespace.Dashboard.SfApp -ServiceManifestName "MyNamespace.Dashboard.ActorsPkg" -CodePackageName "Code"

大多数情况下上面的命令看似出错,但并不是真的重启失败。这与刚刚使用上述命令重新启动服务有关(发现有人在此处的评论中解释

我不需要提供 ServicePackageActivationId 参数,但如果你需要,你可以 运行 这个命令来找出

Get-ServiceFabricDeployedServicePackage -NodeName "_Node_0" -ApplicationName fabric:/MyNamespace.Dashboard.SfApp -ServiceManifestName "MyNamespace.Dashboard.ActorsPkg"

您也可以在服务结构管理门户中执行此操作