Остановить IIS-сайт и все запущенные сеансы / приложения - PullRequest
0 голосов
/ 23 января 2020

Я хочу остановить сайт IIS, скопировать в него мои новые файлы / приложения и затем перезапустить сайт автоматически с помощью PowerShell-скрипта.

Когда я делаю это с помощью IIS-Manager- GUI ( щелкните правой кнопкой мыши на сайте -> стоп), все работает отлично. Сайт недоступен, все клиенты мгновенно теряют связь (используется SignalR). Я заменяю свои файлы и перезагружаюсь с помощью GUI.

. Если я попытаюсь сделать то же самое с PowerShell Stop-IISSite, сайт не будет доступен для новых запросов, но приложение, похоже, будет запущено, и существующие клиенты продолжат работать ( вроде). Если я пытаюсь скопировать свои файлы, файлы приложения по-прежнему блокируются и не могут быть заменены.

Система представляет собой Nano-сервер Win2019 с IIS 10.0, на котором запущено приложение Asp. Net Core 3.1 (интегрированный процесс AppPool) .

Вот мой PS-код:

  Stop-IISSite -Name siteToReplace -confirm:$False;
  Write-Host -NoNewLine 'Site siteToReplace is stopped, copy new files now..!';
  $null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');
  Start-IISSite -Name siteToReplace;

Что мне здесь не хватает? Почему Stop-IISSite работает не так, как пользовательский интерфейс? Как я могу остановить сайт, включая запущенные экземпляры приложения, для замены файлов, не останавливая весь IIS?

...