【问题标题】:Cannot delete Azure Function dll from wwwroot/bin folder无法从 wwwroot/bin 文件夹中删除 Azure Function dll
【发布时间】:2021-04-05 05:18:59
【问题描述】:

我正在使用 kudu 控制台重新部署我的 azure function actifacts,但是当我尝试删除旧的 artifacts 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,但在进程资源管理器中找不到。当函数运行时重新启动时,资源被释放很奇怪!

【问题讨论】:

  • 你能检查你是否有写权限
  • @Sajeetharan 是的,我确实有写权限,我可以删除其他与功能相关的文件和文件夹,但不能删除我有我的功能应用程序 dll 的 bin 文件夹

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


【解决方案1】:

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 

更多详情,您可以参考我在下面的帖子中的回答。

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

【讨论】:

  • 我手动禁用特定功能应用程序并删除 bin 文件夹,然后启用该功能适用​​于我。 WEBSITE_RUN_FROM_PACKAGE 配置条目的值为“0”和根本没有 WEBSITE_RUN_FROM_PACKAGE 配置有什么区别?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-20
  • 2021-01-04
  • 2018-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多