How can I know when Kestrel has started listening?

后端 未结 4 1175
旧时难觅i
旧时难觅i 2021-02-15 13:10

I need to notify systemd that my service has started up successfully, and a task it needs to run after startup requires that the server is already listening

4条回答
  •  春和景丽
    2021-02-15 14:05

    • On .Net Core 1.x it is safe to just run IWebHost.Start() and assume that the server is initialized afterwards (instead of Run() that blocks the thread). Check the source.

      var host = new WebHostBuilder()
          .UseKestrel()
          (...)
          .Build();
      
      host.Start();
      
    • If you are using .NET Core 2.0 Preview 1 (or later), the source is different, the synchronous method is not available anymore so you should await IWebHost.StartAsync() and assume everything is ready afterwards.

提交回复
热议问题