Я развернул приложение в автономном кластере из 5 узлов. Развертывание выполнено успешно. Но приложение не запускалось из-за какой-то ошибки в приложении. Я попытался удалить приложение из кластера с помощью Service Fabric Explorer, но это не удалось.
Состояние работоспособности приложения - «Ошибка», а состояние - «Удаление». Приложение имеет 9 служб. 6 служб показывают состояние здоровья «Неизвестно» со знаком вопроса и статус «Неизвестно». 3 службы показывают состояние работоспособности «ОК», но со статусом «Удаление».
Я также пытался удалить его с помощью PowerShell:
Remove-ServiceFabricApplication -ApplicationName fabric:/appname -Force -ForceRemove
В результате истекло время ожидания операции.
Я также попробовал сценарий ниже, который я нашел в другом сообщении.
Connect-ServiceFabricCluster -ConnectionEndpoint localhost:19000
$nodes = Get-ServiceFabricNode
foreach($node in $nodes)
{
$replicas = Get-ServiceFabricDeployedReplica -NodeName $node.NodeName - ApplicationName "fabric:/MyApp"
foreach ($replica in $replicas)
{
Remove-ServiceFabricReplica -ForceRemove -NodeName $node.NodeName -PartitionId $replica.Partitionid -ReplicaOrInstanceId $replica.ReplicaOrInstanceId
}
}
Также безрезультатно, скрипт не нашел реплики для удаления.
В то же время мы начали удалять приложение, одна из системных служб также изменила состояние. Служба Fabric: / System / NamingService показывает состояние работоспособности «Предупреждение». Это в разделе 00000000-0000-0000-0000-000000001002. Первичная реплика показывает:
Неработоспособное событие: SourceId = 'System.NamingService', Property = 'Duration_PrimaryRecovery', HealthState = 'Warning', ThinkrWarningAsError = false. PrimaryRecovery, начатый 06.10.2016 07: 55: 21.252, занимает больше 30: 00.000.
Я также перезапустил каждый узел (1 на тот момент) безрезультатно.
Как принудительно удалить приложение без воссоздания кластера, потому что это не вариант для производственной среды.