强制删除 Service Fabric 应用程序

Force delete of Service Fabric application

我在开发过程中遇到问题,服务启动期间的异常导致应用程序卡在错误状态。这可以防止进一步调试。我好像也无法通过集群管理门户删除应用程序,它只是超时。

我找到的唯一修复方法是重置集群,这需要几分钟时间,并且还会从集群中删除所有其他应用程序。

强制删除单个应用程序的正确方法是什么?

我创建了以下似乎可以解决问题的 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
    }
}

如果您不使用 Visual Studio 进行开发和调试,请忽略此答案。

我知道问题已经得到解答,但您是否尝试过将 Visual Studio 中的 Application Debug Mode 设置更改为 Remove Application?