【发布时间】:2021-11-10 19:40:03
【问题描述】:
我在 .Net 5 中构建了一个 ASP.NET Core 服务,它使用 Kestrel 作为边缘服务器。该服务需要在 HTTP 协议上侦听多个域 - 例如http://foo:12912 & http://bar:12912 和 HTTPS 协议,如 http://foo:443 & http://bar:443。
我知道我们可以在Program.cs 中使用UseUrls。
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
webBuilder.UseUrls("http://foo:12912", "http://bar:12912");
});
}
但是 - 鉴于 Kestel 已经发展了如此之多 - 应该有一种方法可以从 json 配置本身进行配置。我能找到的所有配置示例仅适用于单个 url,例如
"Kestrel": {
"EndPoints": {
"Http": {
"Url": "http://foo:12912"
},
"Https": {
"Url": "https://foo:443"
}
}
}
属性名称也是url 而不是urls 所以我的假设是它只支持单个url 而不是多个。我的期望是正确的还是我错过了什么?
【问题讨论】:
标签: c# asp.net-core c#-5.0 kestrel-http-server kestrel