Как опубликовать файлы с расширением API-приложения asp.net без необходимости остановки приложения

Когда я пытаюсь опубликовать DLL файлы ядра .net, используя ftp через средство filezilla, отображается сообщение об ошибке, что файл используется другим процессом.

Понятно, что приведенное выше сообщение показывает, что файл используется dotnet.exe, который является отдельным процессом.

Чтобы преодолеть эту проблему, я должен каждый раз останавливать приложение в iis, а затем загружать DLL, а затем перезапускать его. Из-за чего происходит очень небольшое время простоя, сеанс идентификации asp.net истекает, и ему требуется rdp на сервере каждый раз, когда требуется загрузка.

Это также негласный опыт по сравнению с asp.net mvc, где мы могли публиковать файлы напрямую без необходимости RPD или выполнять ручное действие.

Будет оценена любая работа или решение для преодоления вышеуказанных проблем.

Ответ 1

Получено решение.

Это можно сделать с помощью файла app_offline.html.

Вам нужно переместить файл app_offline.html в корневую папку приложения, чтобы остановить/сделать офлайн-приложение.

Затем вы можете нажать свои изменения и удалить файл app_offline.html из корневой папки приложения.

Примечание: В файле app_offline.html вы можете добавить информационное сообщение, которое будет показано пользователю, что техническое обслуживание продолжается.

Ответ 2

Хорошо, если у вас было два сервера за балансировщиком нагрузки, вы могли бы сделать (упрощенно):

  • Удалить сервер 1 из LB
  • Остановить приложение на сервере 1
  • Сервер обновлений 1
  • Добавить сервер 1 обратно в LB
  • Повторите 1-4 для сервера 2

Это называется скользящим обновлением.