Azure 上的 .NET Core 3 Linux 应用程序中的 SSL 错误

SSL error in .NET Core 3 Linux app on azure

我已在 linux 上向 Azure Web 应用 运行 发布了 .NET Core 3(预览版 9)。不幸的是,该应用程序无法启动并且日志显示此错误:

System.InvalidOperationException: Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found or is out of date. 2019-09-18T11:45:51.528664649Z To generate a developer certificate run 'dotnet dev-certs https'

我正在使用 *.azurewebsites.net 域访问站点,默认情况下应该启用 SSL。我已经将这个确切的应用程序发布到 Windows Web 应用程序,没有任何问题。

我对 Linux 不太熟悉,但我想把它托管在那里,因为它更便宜而且似乎提供更好的性能。我有什么想法可以解决这个问题吗?

这似乎是个熟悉的问题,试试下面的方法

dotnet dev-certs https --clean
dotnet dev-certs https -t

原来是配置问题。一旦我切换到使用

WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .UseUrls(YourUrls)
                .UseKestrel()
                .ConfigureKestrel(options =>
                {
                    options.ListenAnyIP(8080);
                })
                .UseIIS()

它开始在 Linux 下正常工作。

我使用 Ubuntu 18.04 时遇到同样的问题。使用以下配置解决(基于 Enn 回答)。我发现 UseUrls 和 UseIIS 不是必需的。

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
            webBuilder.UseKestrel()
                .ConfigureKestrel(options =>
                {
                    options.ListenAnyIP(5000);
                });
        });