Подтвердить что ты не робот

Как развернуть Azure WebJob вместе с веб-приложением .NET Core через Git?

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

У меня есть веб-приложение .NET Core MVC 6, которое я разрабатывал какое-то время, и вам нужно настроить WebJob для него на Azure. Я хочу развернуть это вместе с приложением, используя систему непрерывного развертывания. Azure обеспечивает, что приложение уже использует. Согласно документам Kudu, возможно:

https://github.com/projectkudu/kudu/wiki/Web-Jobs#deploying-net-console-webjobs-alongside-an-aspnet-application

Какие состояния:

Это работает при развертывании непосредственно из Visual Studio (WebDeploy) или через git.

Он ссылается на эту ссылку (https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-deploy-webjobs/), которую я пытаюсь выполнить без успеха.

У меня есть последняя версия Visual Studio 2015,.NET Core 1.0.0 и Tools и Azure SDK.

Первое, что становится очевидным, это то, что у меня нет параметров леса, как показано на скриншотах в документах Azure, и после того, как вы не нашли каких-либо недостающих зависимостей, я прибегал к настройке вручную, как описано.

Даже после размещения необходимых файлов в указанных местах (webjobs-list.json и webjob-publish-settings.json) и настройки их для моего проекта и добавления Microsoft.Web.WebJobs.Publish в проект WebJob, Kudu не находит WebJob через систему непрерывного развертывания.

Я пробовал несколько подходов и вариантов, основанных на документации, которую я нашел там, но я просто не могу заставить ее работать, и все остальные вопросы SO - это год, когда старые.

Кто-нибудь знает, что я делаю неправильно? Возможно ли это с последней версией .NET Core MVC?

4b9b3361

Ответ 1

Файлы WebJobs хранятся в папках "App_Data/jobs/continu" или "App_Data/jobs/triggered", поэтому один из способов, которыми я мог бы использовать для развертывания как Web App, так и WebJob, - это копирование всех файлов WebJobs, необходимых для этих папки во время сборки. Я думаю, что это подойдет при обновлении VS-инструмента.

Мое решение немного отличается от вашего, так как я использую Visual Studio Team Services для создания и выпуска моего приложения для Azure, но концепция такая же. Вы можете использовать событие post build в Visual Studio для запуска script, который копирует эти файлы в папку заданий.

Ниже приведены шаги, которые я настроил в определении сборки VSTS:

  • Задача командной строки: Инструмент: dotnet Аргументы: восстановление

  • Задача Visual Studio Build: Решение: **\MyApp.sln Платформа: $(BuildPlatform) Конфигурация: $(BuildConfiguration) Версия Visual Studio: Visual Studio 2015

  • Задача командной строки: Инструмент: dotnet Аргументы: publish -c $(BuildConfiguration)

  • Задача командной строки: Инструмент: dotnet Аргументы: publish -c $(BuildConfiguration) $(Build.SourcesDirectory)\src\MyApp.Jobs\project.json

  • Скопировать файлы (это трюк): Исходная папка: src/MyApp.Jobs/bin/$(BuildConfiguration)/netcoreapp1.0/publish/ Содержание: ** Целевая папка: src/MyApp.Web/bin/$(BuildConfiguration)/netcoreapp1.0/publish/App_Data/jobs/triggered/MyJobName/

  • Задача архивных файлов: Корневая папка (или файл) для архивации: src/MyApp.Web/bin/$(BuildConfiguration)/netcoreapp1.0/publish/ Префикс имени корневой папки для архивного пути: не установлен Тип архива: zip Архивный файл для создания: website.zip Заменить существующий архив: отмечен

  • Скопировать файлы: Исходная папка: Содержание: **/*. zip Целевая папка: $(Build.ArtifactStagingDirectory)

  • Опубликовать задачу сборки артефактов: Путь сделать публикацию: $(Build.ArtifactStagingDirectory) Название артефакта:. Тип артефакта: Сервер