Azure WebJob - не удается создать каталог - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь опубликовать лазурное веб-задание из VisualStudio, но происходит сбой с ошибкой

Произошла ошибка при обработке операции «Создание каталога». на D: \ home \ site \ wwwroot \ app_data. Код ошибки был 0x80070002. Не удалось найти файл 'D: \ home \ site \ wwwroot \ app_data'. в Microsoft.Web.Deployment.NativeMethods.RaiseIOExceptionFromErrorCode (Win32ErrorCode errorCode, String MaybeFullPath) в Microsoft.Web.Deployment.DirectoryEx.CreateDirectory (String path)
в Microsoft.Web.Deployment.DirPathProviderBase.CreateDirectory (String fullPath, источник DeploymentObject) в Microsoft.Web.Deployment.DirPathProviderBase.Add (DeploymentObject source, Boolean whatIf) Не удалось развернуть публикацию.

Когда я захожу в это WebApp на портале и открываю терминал, я не вижу папку web_app. И когда я пытаюсь создать его с помощью mkdir, он не работает с

Система не может найти указанный файл.

Я проверил это немного больше - и я не могу создать там никаких папок!

Почему папка wwwroot может быть заблокирована?

Если я попробую то же самое с другим WebApp - все отлично работает. Я не хочу воссоздавать веб-приложение

UPDATE

Приложение развернуто с параметром WEBSITE_RUN_FROM_ZIP = 1. И это веб-приложение .NetCore 2.1.

Итак, следующий вопрос:

1) Как добавить приложение WebJob для публикации в тот же пакет, что и веб-приложение, с помощью команды dotbet publish? (аналогично https://stackoverflow.com/a/50046561/1300049)

2) Или как развернуть WebJob в альтернативном месте, например d:\home\site\jobs\ в VSTS?

ОБНОВЛЕНИЕ 2

Нашел обходной путь, который мне не очень нравится. Но это работает. Но я более чем открыт для лучших решений.

Этот ответ основан на 2 ответах (https://stackoverflow.com/a/40049524/1300049 и https://stackoverflow.com/a/46661421/1300049), перечисленных ниже:

1) На этапе сборки соберите все решение, используя MSBuild, с магическими аргументами, аналогичными приведенным в этом ответе - https://stackoverflow.com/a/46661421/1300049

2) Затем, все еще в фазе сборки, запустите dotnet publish для проекта webapp, но без архивирования

3) В качестве окончательного соглашения о сборке скопируйте «app_data» веб-задания (из шага 1) в папку публикации веб-приложения (шаг 2) и объедините все вместе.

4) На этапе выпуска разверните, используя артефакты, как обычно. Просто убедитесь, что вы удалили все свои предыдущие попытки решить проблему, используя переменную среды "WEBJOBS_ROOT_PATH" ...

...