NodeJS Azure:409冲突:无法删除目录,该目录不为空或不允许访问

suzh9iv8  于 2022-11-03  发布在  Node.js
关注(0)|答案(6)|浏览(259)

我使用Azure与节点js应用程序服务。当我尝试删除空文件夹使用ftp或kudu应用程序在node_modules文件夹中,我得到错误:409冲突:无法删除目录。它不是空的或不允许访问。此文件夹完全是空的。我如何删除它?

vfhzx4xs

vfhzx4xs1#

检查Web应用程序的应用程序设置,并删除设置“WEBSITE_RUN_FROM_PACKAGE”或将设置值更改为0。
0 -写入模式; 1 -只读模式

csga3l58

csga3l582#

所有Azure Web应用程序(以及移动应用程序/服务、WebJobs和函数)都在称为沙箱的安全环境中运行。每个应用程序都在自己的沙箱中运行,将其执行与同一计算机上的其他示例隔离,并提供其他情况下无法提供的额外安全性和隐私级别。有关详细信息,请参阅此article
有关目录级访问,请参阅以下内容:
主目录访问(d:\home):
每个Azure Web App都有一个由Azure存储存储/支持的主目录。此网络共享是应用程序存储其内容的位置。此目录可供具有读/写访问权限的沙盒使用。
沙盒在内核模式下实现了一个动态符号链接,该链接将d:\homeMap到客户主目录。这样做的目的是使客户在访问站点时无需一直引用自己的网络共享路径。无论站点在何处运行,也无论VM上运行多少个站点,每个站点都可以使用d:\home访问其主目录。
本地目录访问(d:\local):
这是一个临时目录,当不再需要时可以删除。此目录是存储应用程序临时数据的位置。应用程序自然具有对此目录的读/写访问权限。
请注意,scm站点(运行Kudu的站点)中的d:\local文件夹与主站点(运行web app的站点)中的d:\local文件夹不同,因此它们无法看到彼此的本地文件。
如果你还没有尝试过,请在Kudu控制台中使用rmdir directoryname /s /q命令删除该目录,然后查看是否有效。
您也可以从Web应用程序控制台运行此命令若要访问,请转到'Web应用程序'-〉'开发工具'-〉'控制台'

希望这对你有帮助。

q43xntqr

q43xntqr3#

标题中有一个“Process explorer”选项卡。
1.打开进程资源管理器
1.终止正在使用文件夹或文件的任务
1.您将能够删除有问题的文件夹
这就是我解决同样问题的方法。

i34xakig

i34xakig4#

下面是我的解决方案:将此选项添加到部署到应用程序服务的步骤中。希望它会有所帮助

ktecyv1j

ktecyv1j5#

您可以使用命令api来执行此操作。创建一个CMD或PowerShell命令来清理您的wwwroot,然后执行它。

tp5buhyn

tp5buhyn6#

我尝试了所有的上层解决方案,但都不起作用。黑洞!我停止了应用程序服务,删除了文件,然后重新启动。它起作用了。

相关问题