代码之家  ›  专栏  ›  技术社区  ›  RagtimeWilly

强制删除服务结构应用程序

  •  2
  • RagtimeWilly  · 技术社区  · 8 年前

    我在开发过程中遇到问题,服务启动期间出现异常会导致应用程序陷入错误状态。这会阻止进一步的调试。我似乎也无法通过集群管理门户删除应用程序,它只是超时。

    我发现解决问题的唯一方法是重置集群,这需要几分钟时间,并从集群中删除所有其他应用程序。

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

    2 回复  |  直到 8 年前
        1
  •  1
  •   RagtimeWilly    8 年前

    我创建了下面的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
        }
    }
    
        2
  •  0
  •   Oleg Karasik    8 年前

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

    我知道这个问题已经得到了回答,但你试过改变吗 应用程序调试模式 在VisualStudio中设置为 删除应用程序 ?