Назад | Перейти на главную страницу

Решение sharepoint нельзя удалить, когда задание запланировано или запущено

Я пытался удалить свое решение из Sharepoint 2007, но получаю сообщение об ошибке на странице центрального администратора, и когда я это делаю

stsadm -o deletesolution -name MySolution.wsp -override

из командной строки он возвращает следующее сообщение об ошибке

«Решение не может быть удалено, если задание запланировано или запущено»

Лучшее решение, которое я нашел, было по этой ссылке: Удаление неисправных решений Windows SharePoint Services. У меня в принципе не работала служба администрирования WSS.

  1. Делать

    stsadm -o enumsolutions
    
  2. Скопируйте идентификатор из отзыва SolutionDeploymentJob

  3. Делать

    stsadm -o canceldeployment -id [SolutionDeploymentJob id]
    
  4. Запустите службу администрирования WSS и измените ее на автоматический запуск

  5. Бегать

    stsadm -o execadmsvcjobs
    
  6. Отозвать и удалить решение от центрального администратора, как вы хотели это сделать раньше

Часто, deletesolution предшествует retractsolution. Однако, как указано в сообщении об ошибке, retractsolution может потребоваться некоторое время для запуска, даже если не запланировано для последующего выполнения. Чтобы заставить, retractsolution бежать и закончить, позвонить execadmsvcjobs перед выполнением других операций.

stsadm -o retractsolution -name MySolution.wsp -immediate
stsadm -o execadmsvcjobs
stsadm -o deletesolution -name MySolution.wsp

Решение очень простое. Если вы запустите команду «Удалить», она что-то сделает в фоновом режиме. Таким образом, подход заключается в некотором промежутке между командами «Удалить» и «Удалить».

Этот подход сработал для меня. Мой сценарий PowerShell ждет, пока решение не будет удалено, прежде чем пытаться удалить его.

    Uninstall-SPSolution -Identity "$solutionName" -AllWebApplications -Confirm:$false

    #waiting for uninstall to complete
    $wspSolutionForUninstall = Get-SPSolution -Identity:$solutionName

    while ($wspSolutionForUninstall.JobExists) {
        Write-Host '.' -NoNewline
        sleep -Seconds:1
        $wspSolutionForUninstall = Get-SPSolution -Identity:$solutionName
    }

    Remove-SPSolution -Identity $solutionName -Confirm:$false -force

Ссылка: http://www.fewlines4biju.com/2012/05/solution-cannot-be-removed-when-job-is.html