Ошибка развертывания Azure Web App через msdeploy - ERROR_INSUFFICIENT_A CCESS_TO_SITE_FOLDER
Я развертываю в своем Azure Web App около 4 месяцев, используя msdeploy, и все было плавным, чтобы загрузить веб-сайт.
До недавнего времени ошибок при развертывании не было. Теперь я получаю сообщение об ошибке "ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER" при публикации приложения веб-сайта.
Единственный способ успешно обновить веб-сайт - остановить веб-приложение на Azure, а затем выполнить публикацию для веб-приложения через Visual Studio. Но это может быть проблемой, если пользователи в настоящее время используют систему. Я действительно не хочу времени простоя при обновлении веб-сайта.
Полная ошибка следующая:
Ошибка msdeploy ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER: не удалось выполнить задачу развертывания сети. (Невозможно выполнить операцию ( "Создать файл" ) для указанного каталога ( "D:\home\site\wwwroot\bin\Domain.DbFactory.dll" ). Это может произойти, если администратор сервера не разрешил эту операцию для учетные данные пользователя, которые вы используете. Узнайте больше: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER.)
Как я могу разрешить эти разрешения?
У меня также есть reset мой профиль публикации на Azure и загрузился новый профиль, чтобы повторить попытку. Но не повезло с этим.
Ответы
Ответ 1
Ошибка немного обманчива. Вероятно, это не имеет никакого отношения к разрешению, но вместо этого используется используемыми файлами.
Всегда ли это происходит с Gehs.DbFactory.dll
, или это иногда другие файлы? Кроме того, есть Gehs.DbFactory.dll
регулярная управляемая сборка или встроенная/смешанная сборка?
Обычно все сборки получают теневое копирование, поэтому они не блокируются в папке bin
. Если он является родным, он может оказаться загруженным на место.
Обратите внимание, что в этом случае это не Azure специфическое, и вы, вероятно, будете иметь такую же проблему, развертывая где угодно. например попробуйте удалить этот файл из папки bin
во время работы локально.
Так или иначе, вам нужно убедиться, что файл не заблокирован, если вы хотите опубликовать более новую версию.
Если вы не можете найти способ сделать это, вот техника, которая должна позволить вам публиковать без простоя:
- используя консоль Kudu, перейдите в папку
d:\home\site\wwwroot\bin
- Переименование повреждающей DLL, например. до
Gehs.DbFactory.dll.old
(переименование обычно работает, даже если вы не можете его удалить)
- Сделайте публикацию
Ответ 2
Я получил ошибку (Unable to perform the operation ("Delete Directory") for the specified directory ("2_0_50727")
в развертывании, которое отлично работало и внезапно сломалось.
Если вы не обращаете внимания, "2_0_50727" выглядит просто как случайное число.
Оказывается, это была папка aspnet_client\system_web\2_0_50727
, в которой даже не было файлов.
Основываясь на отметке времени этой папки и том, что она была во ВСЕХ моих веб-приложениях с этой меткой времени, она должна была быть создана Add / Remove Features
, когда я внесла некоторые изменения в мои установленные IIS функции. Таким образом, любые разрешения, которые выполняются, - это то, что эта папка была создана как.
Как только я удалил его, я смог снова установить его.
Ответ 3
То же самое происходило со мной, когда я добавил новую папку под Контентом в свой проект, а затем попытался опубликовать. Я просто перезапустил приложение на Azure, и тогда он работал нормально.