Azure函数应用wwwroot文件夹缺失

btqmn9zl  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(149)

我有一个Azure Function应用程序,它不断地为所有端点返回404。API配置似乎是正确的,所以问题出在函数本身。它一直工作正常,直到最近。我唯一注意到的奇怪的是,当我使用Kudu比较文件夹结构时,一个工作的函数应用程序有一个/home/site/wwwroot目录,

但我的坏功能应用程序

我想这与我的问题有关。我试图手动创建文件夹,但收到409错误。
该代码是用C#编写的,使用Azure管道进行部署以及使用手动进行部署都不起作用

func azure functionapp publish <function app name> --dotnet

我注意到应用程序设置WEBSITE_CONTENTSHARE被设置为一个最初只在暂存插槽上的值,类似于staging-asdf-fdsa,这是否会导致问题?我尝试更改该值并重新启动函数应用程序,但似乎没有任何影响
看起来我走的是正确的道路吗?有人知道为什么这个文件夹会消失吗?我想知道当我在暂存插槽和生产插槽之间进行交换时,我的应用程序设置是否会破坏我的功能应用程序。
如果有任何额外的信息,将有助于请让我知道,我将编辑这个问题与它。

更新

通过将WEBSITE_RUN_FROM_PACKAGE从1切换到0,我能够让它正确创建wwwroot目录,当我进行部署时,它将其切换回1并创建wwwroot目录。
问题是,我仍然收到一个404为有效的URL。

xqkwcwgp

xqkwcwgp1#

找到了根本原因。我查看了正在运行的C#应用程序,发现在Startup.cs中,正在设置api路由后缀。MS文档对此非常混乱,其意图似乎是从/api切换到/api/<something>,虽然看起来在内部对函数本身起作用,但azure函数应用程序并不知道路由中的这种变化,因此它一直尝试在/api上为请求提供服务。删除此行解决了这个问题。我相信,如果我们想更改路由后缀,最终可能的解决方案是更新host.jsonStartup.cs中的值,但这是另一个SO票证的另一个问题(希望不是)

相关问题