[英]Using Kestrel https .net core 6
我在 .net 核心 5 中有应用程序。这是 Startup.cs 中的代码
'''''
public static IHostBuilder CreateHostBuilder(string[] args) =>
//Host.CreateDefaultBuilder(args)
// .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => {
webBuilder
.UseStartup<Startup>()
.UseKestrel(o =>
{
o.Listen(IPAddress.Any, 443, opt =>
{
opt.UseHttps("pathfto.pfx", "passwordtocert");
});
});
});
我想把它升级到 .net core 6
我以为会是这样
var builder = WebApplication.CreateBuilder(args);
builder.Host
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.UseKestrel(o =>
{
o.Listen(IPAddress.Any, 443, opt => { opt.UseHttps("pathto.pfx", "passwordtocert"); });
});
});
但是当我尝试编译它时它不起作用。
提前感谢您提供任何解决方案。
尝试使用 builder.WebHost
builder.WebHost.ConfigureKestrel(options =>
{
options.Listen(IPAddress.Any, int.Parse(builder.Configuration.GetSection("SSL")["port"]), listenOptions =>
{
listenOptions.Protocols = HttpProtocols.Http1AndHttp2;
if (builder.Configuration.GetSection("SSL")["sertificateName"].Trim() != "")
listenOptions.UseHttps(Path.Combine(AppContext.BaseDirectory, "cfg", builder.Configuration.GetSection("SSL")["sertificateName"]), builder.Configuration.GetSection("SSL")["password"]);
});
});
您可以在https 上找到更多详细信息://docs.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis?view=aspnetcore-6.0
您的问题是您尝试builder.Host
而不是builder.WebHost
。 我认为这将是等价的。
程序.cs
builder.WebHost.ConfigureKestrel(opt => {
opt.ListenAnyIP(443, listOpt =>
{
listOpt.UseHttps(@"pathto.pfx", "passwordtocert");
});
});
var app = builder.Build();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.