gpt4 book ai didi

kestrel-http-server - 指定动态端口 (0) 时如何确定 ASP.NET Core 2 正在监听的端口

转载 作者:行者123 更新时间:2023-12-04 05:28:47 25 4
gpt4 key购买 nike

我有一个 ASP.NET Core 2.0 应用程序,我打算将其作为独立应用程序运行。该应用程序应启动并绑定(bind)到可用端口。为此,我将 WebHostBuilder 配置为监听“http://127.0.0.1:0”并使用 Kestrel 服务器。一旦网络主机开始监听,我想将带有实际端口的 url 保存在文件中。我想尽早这样做,因为另一个应用程序将读取该文件以与我的应用程序交互。

如何确定网络主机正在监听的端口?

最佳答案

您可以使用 Start()方法而不是 Run()访问 IServerAddressesFeature在正确的时刻:

IWebHost webHost = new WebHostBuilder()
.UseKestrel(options =>
options.Listen(IPAddress.Loopback, 0)) // dynamic port
.Build();

webHost.Start();

string address = webHost.ServerFeatures
.Get<IServerAddressesFeature>()
.Addresses
.First();
int port = int.Parse(address.Split(':').Last());

webHost.WaitForShutdown();

关于kestrel-http-server - 指定动态端口 (0) 时如何确定 ASP.NET Core 2 正在监听的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46294883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com