Azure:409冲突:无法删除目录。它不是空的,也不允许访问

时间:2017-09-22 10:36:22

标签: node.js azure azure-web-sites

我将Azure与节点js App Service一起使用。 当我尝试在node_modules文件夹中使用ftp或kudu app删除空文件夹时出现错误: 409冲突:无法删除目录。它要么不为空,要么不允许访问。这个文件夹完全是空的。我怎么能删除它?

5 个答案:

答案 0 :(得分:2)

所有Azure Web应用程序(以及移动应用程序/服务,WebJobs和函数)都在称为沙箱的安全环境中运行。每个应用程序都在自己的沙箱中运行,将其执行与同一台机器上的其他实例隔离开来,并提供额外的安全性和隐私,否则将无法使用。有关详细信息,请参阅此article

对于目录级访问,请参阅以下内容:

主目录访问(d:\ home):

每个Azure Web App都有一个由Azure Storage存储/支持的主目录。此网络共享是应用程序存储其内容的位置。此目录可用于具有读/写访问权限的沙箱。

沙箱在内核模式下实现动态符号链接,将d:\ home映射到客户主目录。这样做是为了消除客户在访问站点时继续引用自己的网络共享路径的需要。无论站点在哪里运行,或者在VM上运行了多少站点,每个站点都可以使用d:\ home访问其主目录。

本地目录访问(d:\ local):

这是一个临时目录,可以在不再需要时删除。此目录是存储应用程序临时数据的位置。该应用程序自然具有对该目录的读/写访问权。

请注意,scm站点(Kudu运行的位置)中的d:\ local文件夹与主站点(运行Web应用程序的位置)中的d:\ local文件夹不同。结果,他们无法看到对方的本地文件。

如果你还没有尝试过,请在Kudu Console中使用 rmdir directoryname / s / q 命令删除目录,看看是否有效。

您也可以从Web App控制台运行此命令。要访问,转到Web应用程序 - >开发工具 - >控制台

enter image description here

希望这有帮助。

答案 1 :(得分:0)

你可以使用command api来做到这一点。制作一个CMD或PowerShell命令,它将清理你的wwwroot,然后执行它。

答案 2 :(得分:0)

这是我的解决方案:在部署到应用程序服务的步骤中添加此选项。 希望对您有帮助

Options for deploying

答案 3 :(得分:0)

检查Web App的AppSettings并删除设置“ WEBSITE_RUN_FROM_PACKAGE”或将设置值更改为0。

0-写入模式; 1-只读模式

答案 4 :(得分:-1)

标题中有一个Process explorer标签。

  1. 打开Process explorer
  2. 终止使用文件夹或文件的任务
  3. 您可以删除有问题的文件夹
  4. 这就是我解决同一问题的方法。

相关问题