无法从 wwwroot/bin 文件夹中删除 Azure Function dll

时间:2021-04-05 05:18:59

标签: azure azure-functions azure-web-app-service kudu

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

enter image description here

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

enter image description here

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

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

1 个答案:

答案 0 :(得分:0)

设置WEBSITE_RUN_FROM_PACKAGE的原因是vs2019用于release,vs2019是release的,使用zip deploy。

现在如果要修改或删除文件,唯一的办法就是设置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 

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

How to change content dynamically after function is called in Azure function app