将.NET Core Web App发布到Azure上的Linux

时间:2019-06-10 18:59:43

标签: azure asp.net-core .net-core

我正试图将.Net Core 2.2 Web应用发布到Linux环境。

我已经使用带有Linux的ServicePlan创建了Web App。我下载了发布配置文件并成功发布。

我通过FTP配置文件发布了它。

enter image description here

问题是,当我访问Web应用程序地址时,它仍然显示Azure空状态Web应用程序:

enter image description here

有什么想法我想念的吗?

1 个答案:

答案 0 :(得分:1)

我试图重现您的情况,并且可能会看到相同的行为。

有一种方法可以configure Default documents使用App Services,但这仅对 Windows 上的App Services有效,而对于 Linux 上的无效。

对于Linux应用,该实现将基于所选的运行时堆栈。

特别是对于.Net Core Razor页面,AddPageRoute()方法可帮助定义路由,如this博客文章中所述:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc().AddRazorPagesOptions(options =>
    {
        //"/Home/welcome" is the page we want to land at
        //The empty string signifies the root URL   

        options.Conventions.AddPageRoute("/Home/welcome", "");
    });

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}

也就是说,这仅在本地发布时有效,而在发布到适用于Linux的Azure应用服务时则无效,

我将与我们的内部团队一起检查此问题,并再次与您联系。感谢您引起我们的注意!

更新:

您可以为App Service配置启动命令。对于.Net Core,它看起来像dotnet <myapp>.dll。这绝对应该工作。请注意,您可能必须在发布之前删除所有现有文件(从“发布配置文件”>“设置”>“文件发布选项”>启用“在发布之前删除所有现有文件”>“保存”)以查看所做的更改。

希望这会有所帮助!