How to determine which port ASP.NET Core 2 is listening on when a dynamic port (0) was specified

前端 未结 5 1162
遇见更好的自我
遇见更好的自我 2020-12-17 20:28

I\'ve got an ASP.NET Core 2.0 app which I intend to run as a stand-alone application. The app should start up and bind to an available port. To achieve this I configure the

5条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-17 21:10

    You can use the Start() method instead of Run() to access IServerAddressesFeature at the right moment:

    IWebHost webHost = new WebHostBuilder()
        .UseKestrel(options => 
             options.Listen(IPAddress.Loopback, 0)) // dynamic port
        .Build();
    
    webHost.Start();
    
    string address = webHost.ServerFeatures
        .Get()
        .Addresses
        .First();
    int port = int.Parse(address.Split(':').Last());
    
    webHost.WaitForShutdown();
    

提交回复
热议问题