小编J.R*_*.R.的帖子

如何将 Kestrel 配置为使用随机动态端口并在 ASP.NET Core 3.1 运行时确定端口?

使用 ASP.NET Core 3.0 我已经能够使用这种IHostedService方法......

确定 Kestrel 绑定的端口

...在运行时确定 Kestrel 的动态端口。

IServerAddressesFeatureASP.NET 3.0 的文档如下:

https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.hosting.server.features.iserveraddressesfeature?view=aspnetcore-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)

c# asp.net-core asp.net-core-3.1

7
推荐指数
1
解决办法
2882
查看次数

标签 统计

asp.net-core ×1

asp.net-core-3.1 ×1

c# ×1