使用DevOps将.Net Core部署到Azure上的Linux Web应用程序

4
我有一个 .Net Core WebApp 的构建/发布版本,在 Windows 机器上运行得非常完美,但是我想要将同样的代码库部署到 Linux 上。我设置了一个构建和发布,并使用“Linux 上的 Web 应用程序”来部署到我的 Linux WebApp。我还确保在构建和 WebApp 上的运行时堆栈都设置为使用 .Net Core 2.2:

enter image description here

构建和发布过程都运行正常,但是一旦部署完成后,网站就会出现404错误(替换了默认的Azure启动HTML页面)。我已经通过FTP登录到WebApp,并看到文件已部署到机器上,但我发现有多个“wwwroot”文件夹。

enter image description here

"wwwroot"文件夹包含了我的应用程序的DLL,这是个好兆头: enter image description here

奇怪的是,如果我访问/wwwroot/(filename),我可以从我的应用程序中获取到静态文件,例如CSS、JS或网站图标。 enter image description here

我非常确定我已经正确地设置了所有内容,所以我对要尝试的事情感到困惑。我从未在部署到Windows WebApps时遇到过这样的问题,因此我确定存在某些我不知道或文档中缺少的设置。

有关此问题的更多详细信息,请参见我的BUILD:

enter image description here

...以及我的发布设置:

enter image description here


至少根据Node.js教程,文件夹结构完全不同,https://learn.microsoft.com/en-us/azure/app-service/containers/quickstart-nodejs,而.NET Core教程使用Git部署方法,https://learn.microsoft.com/en-us/azure/app-service/containers/quickstart-dotnetcore。 - Lex Li
1
尝试将“-r ubuntu.16.10-x64”添加到您的发布参数中,然后再次运行构建。这应该会创建一个自包含的Linux asp.net core应用程序,您的构件应该包含您需要运行它的所有内容。 - Marcus Höglund
谢谢Marcus。我刚试了一下,但结果还是一样的。 - INNVTV
1
嗨@INNVTV,我也遇到了同样的问题。你解决了问题吗? - Marius Bughiu
2
嗨@MariusBughiu,不是的 - 我花了太多时间调试它,选择使用Windows服务器。我计划在有空闲时间时回来处理这个问题,因为我想使用Linux以节省成本,并可能迁移到Kubernetes。如果我解决了这个问题,我会更新这个问题。如果您先解决了它,请也做同样的事情!!! - INNVTV
1个回答

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接