我尝试在运行
dotnet publish
后部署 dotnet 项目的内容,但较新版本的 azure-cli
抱怨以下错误消息:
$ az webapp up --name MyAppService
Could not auto-detect the runtime stack of your app, see 'https://go.microsoft.com/fwlink/?linkid=2109470' for more information
按照链接https://go.microsoft.com/fwlink/?linkid=2109470,我可以看到它正在寻找 *.csproj 文件,但这对我来说没有意义,因为我'我正在从我的发布目录部署文件。据我所知,如果我从包含 *.csproj 文件的目录运行它,它可以工作,但会尝试压缩和上传所有源代码,而不仅仅是已发布的文件。
它最初在
azure-cli
v2.0.66 中工作。最近我降级到 v2.0.75(如此处所示 https://stackoverflow.com/a/59529584)并且它也可以工作,但我想保持 azure-cli
为最新状态。我还看到 azure-cli
添加了 --html
标志来部署静态文件,但我的情况有点不同。
所以问题是:如何让
az webapp up
在 dotnet publish
>v2.0.75 版本中的 azure-cli
目录中工作?
我认为存在一些相关的错误。
我也有类似的问题。在本教程之后,最后一步是应用
az webapp up
命令,但部署的站点仅显示一条消息:“您无权查看此目录或页面”。这意味着在部署的站点文件夹中未检测到任何站点。
我应用了
dotnet publish
命令并尝试从已发布的文件夹运行 az webapp run
,但结果与您相同:“无法自动检测应用程序的运行时堆栈,请参阅“https://go” .microsoft.com/fwlink/?linkid=2109470'了解更多信息。”
最后,从 root 项目文件夹 我运行
dotnet publish -o .
,然后运行 az webapp up
并让部署按预期工作。这听起来真的很疯狂,因为我终于将发布的文件与源代码合并了。
这是我第一次尝试使用
az webapp up
,希望这个问题尽快得到解决。
尝试将 CLI 版本升级到 2.0.79,看看是否有帮助。我们最近遇到了 Az webapp up 的问题,该问题已在 2.0.79 版本中修复。
请查看此线程以获取更多信息:Github Issue
还有此文档以供更多参考:在 Azure 中创建静态 Web 应用程序
尝试从项目目录(您拥有 .csproj 文件)执行以下命令:
dotnet publish
然后从您的 publish 目录(其中包含上一个
dotnet publish
命令生成的输出文件)执行以下命令:
az webapp up --name <AppServiceName> --runtime <desired_runtime> --os-type <Windows|Linux>
注意:您可以使用
az webapp list-runtimes
查看可用运行时的列表
如果
az webapp up
命令失败,请检查您的应用服务的 Azure Web 门户(如果您有以下 应用程序设置 参数):
SCM_DO_BUILD_DURING_DEPLOYMENT
如果存在,请将其值设置为
False
,确保保存其新值,然后重试 az webapp up
完成命令。
如果您使用的是较新的 dotnet 之一(7、8 等)。您需要指定
--runtime
例如
# build and create output files
dotnet publish
# go to the published folder
cd bin\Debug\net7.0\publish
# deploy. Make sure you use the --runtime param!
az webapp up --name myapp --os-type windows --runtime dotnet:7
这对我有用