Проблема Hotswap DLL для обновления ASP. NET Zero do tnet основанного на ядре веб-приложения с использованием Azure DevOps CD - PullRequest
0 голосов
/ 05 марта 2020

Мы создаем веб-приложение для наших клиентов, используя шаблон ASP .NETZero, созданный на основе tnet core 3.1.x

Я пытаюсь создать конвейер выпуска в Azure DevOps и сталкиваюсь с проблемами, пока публикация изменений конвейера сборки в IIS аналогично тому, как я это делал для традиционных MVC5 или MVC6. NET Веб-приложения на основе фреймворка.

Самостоятельно размещенный агент devops работает на компьютере, отличном от рабочего сервера, на котором опубликовано веб-приложение, а учетная запись службы агента имеет доступ к общему пути \\ server \ inetpub-sharedhostingdir * Только 1006 *.

Традиционно, Копирование файлов * Задача 1010 * может заменить библиотеки DLL приложения и все другие файлы, но в .NETCore есть ошибка, подобная приведенной ниже:

enter image description here

Тогда я узнал, что это из-за изменений, как. NET Хостинг Core 3.1.x работает.

Я также пытался использовать ' OutOfProcess ' в web.config в веб-приложении, но все еще получал ту же ошибку, а затем я обнаружил эту SO запись и информацию о горячей замене DLL предоставлено @ MindingData.

Итак, моя текущая задача для преодоления этой проблемы - использование удаленного PowerShell на CD; Я могу остановить веб-приложение и опубликовать sh новый артефакт. Но за этот шаг приходится платить, я должен остановить сайт и заменить все библиотеки DLL, что может занять примерно 30 секунд.

enter image description here

Удаленный агент DevOps Azure не имеет доступа к этому прямо сейчас, но мы должны добавить исключения брандмауэра для этого.

Мне интересно, есть ли другая эффективная альтернатива веб-приложению publi sh .NETCore 3.1.x, использующему агент AzureDevOps, работающий на удаленном сервере? (поскольку доступ к производственному серверу ограничен, и мы не можем развернуть агент azure на производственном компьютере.)

Из-за этих проблем в настоящее время мне нужно вручную переместить все библиотеки DLL в «резервную копию» каталога, чтобы сделать хостинг каталог пуст, а затем, если я запускаю конвейер первого изображения, «Копирование файлов в» выполняется успешно и хорошо публикует приложение.

Есть предложения по улучшению CD в текущей среде?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...