azure - 无法从 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,但在进程资源管理器中找不到。当函数运行时重新启动时,资源被释放非常奇怪!
解决方案
设置的原因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
有关更多详细信息,您可以在下面的帖子中参考我的答案。
推荐阅读
- python - 创建一个 python 虚拟环境
- flutter - Flutter Bloc - 如何在提交失败时显示继续显示错误
- php - PHP 简单留言板 - htmlentities 无法正常工作
- java - Java中多线程服务器的最佳线程安全队列类型是什么
- javascript - jQuery和HTML,如何根据另一个表单的值隐藏表单?
- openstack - Openstack heat 模板将安全组附加到现有端口
- django - 为什么 docker 允许删除其他人的容器/图像?
- amazon-web-services - 如何将 AWS Glue 中经过训练的 FindMatch ML 转换从 UAT 复制到 AWS 中的 PROD 环境
- python - django:上传文件神秘问题
- c - c错误:赋值从指针生成整数而没有强制转换[-Werror=int-conversion]