【问题标题】:Deploying .Net Core to Linux WebApps on Azure with DevOps使用 DevOps 将 .Net Core 部署到 Azure 上的 Linux WebApp
【发布时间】:2024-04-20 23:30:02
【问题描述】:

我有一个在 Windows 机器上完美运行的 .Net Core WebApp 的构建/发布,但是我希望能够将相同的代码库部署到 Linux。我设置了构建和发布,并使用“Linux 上的 Web 应用程序”部署到我的 Linux Web 应用程序。我还确保 Build 和 WebApp 上的运行时堆栈设置为使用 .Net Core 2.2:

构建和发布运行完美,但是一旦部署完成,网站就会进入 404(替换默认的 Azure 启动 HTML 页面)。我已经通过 FTP 进入 WebApp 并看到文件已部署到机器上,但是我看到有多个“wwwroot”文件夹:

顶部的“wwwroot”文件夹确实包含我的应用程序的 DLL,这是一个好兆头:

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

我很确定我已经正确设置了一切,所以我在尝试的事情上碰壁了。我从来没有遇到过部署到 Windows WebApps 这样的问题,所以我确信有一个设置或我不知道或文档中缺少的东西。

有关此问题的更多详细信息是我的 BUILD:

...以及我的 RELEASE 设置:

【问题讨论】:

  • 至少基于Node.js教程,文件夹结构完全不同,docs.microsoft.com/en-us/azure/app-service/containers/…和.NET Core教程使用Git部署方式,docs.microsoft.com/en-us/azure/app-service/containers/…
  • 尝试将“-r ubuntu.16.10-x64”添加到您的发布参数并再次运行构建。它应该为 linux 创建一个独立的 asp.net 核心应用程序,并且您的工件应该包含运行它所需的所有内容。
  • 谢谢马库斯。我刚刚尝试过,但得到了相同的结果。
  • 嗨@INNVTV,我碰到了同一堵墙。你找出问题所在了吗?
  • 嗨@MariusBughiu 不-我花了太多时间调试它并选择使用Windows服务器。我计划在我有一些空闲时间时回到这个问题,因为我想使用 Linux 来节省成本,并可能在未来迁移到 Kubernetes。如果我解决了这个问题,我会更新这个问题。如果你先解决它,请做同样的事情!!!!

标签: azure asp.net-core .net-core azure-devops azure-web-app-service


【解决方案1】:

我遇到了类似的问题,问题归结为 VS 如何发布 zip 与 Dev Ops。如果您返回 Azure 门户,您将需要添加一个启动命令,指定您的主 DLL 所在的位置。

https://docs.microsoft.com/en-us/azure/app-service/containers/app-service-linux-faq#built-in-images

【讨论】:

    最近更新 更多