我已经使用 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 http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER.)
我将如何授权这些权限?
我还在 Azure 上重置了我的发布配置文件,并下载了新的配置文件以再次尝试。但没有运气。
这个错误有点欺骗性。这可能与权限无关,而是由正在使用的文件引起的。
它总是发生在Gehs.DbFactory.dll
,或者有时是其他文件?也是Gehs.DbFactory.dll
常规的托管程序集,还是本机/混合程序集?
通常,所有程序集都会进行影子复制,因此它们不会被锁定在bin
文件夹。如果它是本机的,它最终可能会被加载到位。
请注意,如果是这种情况,则它不是 Azure 特定的,并且您在任何地方部署时都可能会遇到相同的问题。例如尝试从您的中删除该文件bin
本地运行时的文件夹。
无论如何,如果您想发布更新版本,您需要确保没有文件被锁定。
如果您找不到方法来执行此操作,这里有一种技术可以让您在不停机的情况下进行发布:
- using Kudu 控制台 https://github.com/projectkudu/kudu/wiki/Kudu-console,去你的
d:\home\site\wwwroot\bin
folder
- 重命名有问题的 DLL,例如到
Gehs.DbFactory.dll.old
(即使无法删除,重命名通常也有效)
- 做你的出版
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)