使用 ASP.NET Core 3.0 我已经能够使用这种IHostedService方法......
...在运行时确定 Kestrel 的动态端口。
IServerAddressesFeatureASP.NET 3.0 的文档如下:
但是,当将版本更改为 ASP.NET Core 3.1 时,页面会重定向回 ASP.NET 3.0,并提示该文档不适用于 ASP.NET Core 3.1。不再IServerAddressesFeature工作了吗?与 ASP.NET Core 3.1一起使用IServerAddressesFeature仍然可以编译,但返回的端口ServerAddresses始终为零。
程序:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost().Run();
}
public static IWebHost BuildWebHost() =>
WebHost.CreateDefaultBuilder()
.UseKestrel()
.UseUrls("http://127.0.0.1:0") // port zero to use random dynamic port
.UseStartup<Startup>()
.Build();
}
Run Code Online (Sandbox Code Playgroud)
后来,什么时候Configure叫...
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
HostedService.ServerAddresses …Run Code Online (Sandbox Code Playgroud)