我在开发过程中遇到问题,服务启动期间的异常导致应用程序卡在错误状态。这可以防止进一步调试。我似乎也无法通过集群管理门户删除应用程序,它只是超时。
我发现修复的唯一方法是重置集群,这需要几分钟时间,并且还会从集群中删除所有其他应用程序。
强制删除单个应用程序的正确方法是什么?
最佳答案
我创建了以下似乎可以解决问题的 powershell 脚本:
param([string]$applicationName = "SomeAppName", [string]$version = "1.0.0")
$applicationUri = "fabric:/" + $applicationName
$applicationTypeName = $applicationName + "Type"
Connect-ServiceFabricCluster localhost:19000
Write-Host ""
Write-Host "Removing $applicationUri from local cluster"
Remove-ServiceFabricApplication -ApplicationName fabric:/$applicationName
Write-Host ""
Write-Host "Removing $applicationTypeName (v$version) from local cluster"
Unregister-ServiceFabricApplicationType -ApplicationTypeName $applicationTypeName -ApplicationTypeVersion $version
Write-Host ""
Write-Host "Complete"
可以这样调用:
.\Delete-SF-App.ps1 -applicationName "MyService" -version "1.0.0"
编辑:
如果上述方法不起作用,则可以使用以下 powershell 命令删除单个副本:
$nodes = Get-ServiceFabricNode
foreach($node in $nodes)
{
$replicas = Get-ServiceFabricDeployedReplica -NodeName $node.NodeName -ApplicationName $applicationName
foreach ($replica in $replicas)
{
Remove-ServiceFabricReplica -ForceRemove -NodeName $node.NodeName -PartitionId $replica.Partitionid -ReplicaOrInstanceId $replica.ReplicaOrInstanceId
}
}
关于azure-service-fabric - 强制删除 Service Fabric 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50730928/