首页 > 解决方案 > 无法从 wwwroot/bin 文件夹中删除 Azure Function dll

问题描述

我正在使用 kudu 控制台重新部署我的 azure 函数活动,但是当我尝试删除旧的工件 bin 文件夹无法删除时,我得到 409 Conflict: Cannot delete directory,它不是空的或不允许访问。

在此处输入图像描述

当我尝试删除函数 dll 失败并出现 404 not found 错误,如下所示。我找不到函数 dll 的任何句柄。

在此处输入图像描述

我没有为 WEBSITE_RUN_FROM_PACKAGE 配置 APP 设置。知道为什么会出现这种行为以及如何删除旧工件并重新部署新的功能工件吗?

更新 我已将 WEBSITE_RUN_FROM_PACKAGEV 0 切换到 1 并切换回 1 到 0。现在我能够删除 bin 文件夹,看起来有一个进程仍在使用我的函数应用程序 dll,但在进程资源管理器中找不到。当函数运行时重新启动时,资源被释放非常奇怪!

标签: azureazure-functionsazure-web-app-servicekudu

解决方案


设置的原因WEBSITE_RUN_FROM_PACKAGE是vs2019用于发布,vs2019发布,使用zip部署。

现在如果你想修改或删除文件,唯一的方法就是设置WEBSITE_RUN_FROM_PACKAGE = 0然后修改它。在当前版本的函数应用中,修改后WEBSITE_RUN_FROM_PACKAGE = 0会删除wwwroot文件夹中的所有内容。

经测试,4月1日和2日之后创建的函数应用会有这种现象,联系微软工程师确认这是正常的预期行为。

如果要修改文件,不建议使用vs2019直接发布。推荐使用命令行发布。因此,您可以在 wwwroot 下读写文件。

func azure functionapp publish function_app_name --csharp --nozip --force 

有关更多详细信息,您可以在下面的帖子中参考我的答案。

如何在 Azure 函数应用中调用函数后动态更改内容


推荐阅读