msdeploy发布Azure Web App部署错误 - ERROR_INSUFFICIENT_A CCESS_TO_SITE_FOLDER

Ste*_*rwe 17 azure azure-deployment azure-web-sites

我使用msdeploy已经部署到我的Azure Web App大约4个月了,所有内容都顺利上传到网站上.直到最近,部署还没有出错.我现在在发布网站应用程序时收到"ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER"错误.

我成功更新网站的唯一方法是停止Azure上的Web应用程序,然后通过Visual Studio执行Web应用程序的发布.但如果用户当前正在使用该系统,这可能是一个问题.在更新网站时,我真的不想要任何停机时间.

完整错误如下:

msdeploy错误ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER:Web部署任务失败.(无法对指定目录执行操作("创建文件")("D:\ home\site\wwwroot\bin\Domain.DbFactory.dll").如果服务器管理员未授权此操作,则可能会发生此操作您正在使用的用户凭据.有关详情,请访问:http://go.microsoft.com/fwlink/?LinkId = 221672 #ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER.)

我将如何授权这些权限?

我还在Azure上重置了我的发布配置文件,并下载了一个新的配置文件以再次尝试它.但没有运气.

Bre*_*uke 32

对我来说,修复方法是将“删除目标位置的附加文件”设置设置为“true”。

我使用 .NET 6,最近刚刚从 .NET Core 3.1 迁移到 .NET 6

在此输入图像描述


Dav*_*bbo 22

错误有点欺骗.这可能与权限无关,而是由正在使用的文件引起.

它总是会发生Gehs.DbFactory.dll,或者有时是其他文件?此外,是Gehs.DbFactory.dll常规托管程序集,还是本机/混合程序集?

通常,所有程序集都会复制阴影,因此它们不会锁定在该bin文件夹中.如果它是原生的,它最终可能会被加载到位.

请注意,如果是这种情况,那么它不是特定于Azure的,并且您可能在任何地方部署相同的问题.例如,尝试bin在本地运行时从文件夹中删除此文件.

无论如何,如果要发布更新版本,您需要确保没有文件被锁定到位.

如果您找不到这样做的方法,这里有一种技术可以让您在没有任何停机的情况下发布:

  • 使用Kudu控制台,转到您的d:\home\site\wwwroot\bin文件夹
  • 重命名有问题的DLL,例如Gehs.DbFactory.dll.old(即使你不能删除它也能正常重命名)
  • 做你的出版

  • 您也可以在发布之前在Azure门户中停止该网站,然后重新启动它.当然,该网站将不可用,但在开发过程中可以选择. (2认同)