Kestrel UseHttps()方法签名在.net core 2中更改

时间:2017-07-20 05:27:33

标签: asp.net-core

我编写了一个基于.NET核心1.1的ASP.NET应用程序。此应用程序按预期工作。今天,我刚刚将服务器升级到dotnet-sdk-2.0.0-preview2-006497并对.csproj文件进行了必要的更改。

在我的应用程序的main方法中,我有以下代码:

 var host = new WebHostBuilder()
    .UseKestrel(options => {
       options.UseHttps("MyCert.pfx");
    })
    ...

此代码曾经在.net core 1.0下正常工作但在.net core 2.0下出错。

KestrelServerOptions does not contain a definition for UseHttps and
the best extension method overload
ListenOptionsHttpsExtensions.UseHttps(ListenOptions, string) requires
a receiver of type ListenOptions

我想知道如何解决这个问题。我可以将null作为参数传递吗?问候。

1 个答案:

答案 0 :(得分:19)

这是一个重大变化,请参阅this announcement,重要的是:

  

.Listen()没有重载,允许您在不使用选项lambda的情况下配置SSL证书。

换句话说,您只能在某些监听选项中添加HTTPS。最简单的替代方案是:

var host = new WebHostBuilder()
    .UseKestrel(options =>
        options.Listen(IPAddress.Any, 443, listenOptions =>
                listenOptions.UseHttps("MyCert.pfx")))
        ...

所以你说使用端口443监听任何分配的IP。