【发布时间】: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