WebDeploy с шаблонами ARM для функций Azure сбой с ОШИБКОЙ_INSUFFICIENT_ACCESS_TO_SITE_FOLDER

#azure-functions

#azure-функции

Вопрос:

Я пытаюсь развернуть функциональное приложение Azure (.NET Core, functions v3) с MSDeploy с использованием шаблона ARM, и я продолжаю получать эту ошибку почти каждый раз. Это удается только изредка. В моем функциональном приложении есть 5 функций, основанных на таймере, которые выполняются каждую секунду. В настоящее время я использую слоты развертывания, и для моих функций установлено значение disabled, когда они находятся в промежуточном слоте (с помощью параметра DisabledAttribute и параметра, зависящего от конкретного слота).

Шаблон ARM, который я использую для развертывания:

 {
            "apiVersion": "2018-02-01",
            "name": "[concat(variables('webAppName'), '/staging')]",
            "type": "Microsoft.Web/sites/slots",
            "kind": "app",
            "location": "[resourceGroup().location]",
            "resources": [
                {
                    "apiVersion": "2015-02-01",
                    "type": "Extensions",
                    "name": "MSDeploy",
                    "dependsOn": [
                        "[concat(resourceId('Microsoft.Web/Sites/', variables('webAppName')), '/slots/staging')]"
                    ],
                    "properties": {
                        "packageUri": "[parameters('packageUrl')]"
                    }
                }
            ]
        }
  

ARM-MSDeploy Deploy Failed: 'Microsoft.Web.Deployment.DeploymentDetailedUnauthorizedAccessException: Unable to perform the operation ("Delete File") for the specified directory ("D:homesitewwwrootbinMyAssembly.dll"). This can occur if the server administrator has not authorized this operation for the user credentials you are using. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER. ---amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;> Microsoft.Web.Deployment.DeploymentException: The error code was 0x80070005. ---amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;> System.UnauthorizedAccessException: Access to the path 'D:homesitewwwrootbinMyAssembly.dll' is denied.

Как мне предотвратить возникновение этой ошибки?

Комментарии:

1. Добро пожаловать в Stackoverflow. Вы можете получить лучшие ответы, сделав свой вопрос более конкретным.

Ответ №1:

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

Вам нужно добавить параметр appOfline и установить для него значение true, как указано в этой статье

     {
  "apiVersion": "2016-08-01",
  "name": "MSDeploy",
  "type": "Extensions",
  "properties": {
    "packageUri": "https://storage.blob.core.windows.net/artifacts/package.zip",
    "appOffline": true
  }
  

Надеюсь, вышесказанное поможет решить вашу проблему.

Комментарии:

1. Спасибо! Похоже, это помогло. При первой попытке моего развертывания всегда происходит сбой, но вторая попытка, похоже, завершилась успешно. Лучше, чем 99% сбоев, как раньше 🙂