我怎么知道红est何时开始收听?

Rim*_*mel 5 c# kestrel asp.net-core

我需要通知systemd我服务已成功启动,并且启动后需要运行的任务要求服务器已经在目标Unix域套接字上进行侦听

IWebHost::Run用来启动服务器,这是一个阻塞的调用。此外,我找不到任何明显的方法来设置委托或回调事件以成功进行初始化。

任何人?

Rim*_*mel 1

这就是我现在最终选择的。似乎工作正常:

host.Start();

Log.Information("Press Ctrl+C to shut down...");
Console.CancelKeyPress += OnConsoleCancelKeyPress;

var waitHandles = new WaitHandle[] {
    CancelTokenSource.Token.WaitHandle
};

WaitHandle.WaitAll(waitHandles);
Log.Information("Shutting down...");
Run Code Online (Sandbox Code Playgroud)

然后,在 Ctrl+C 事件处理程序中:

private static void OnConsoleCancelKeyPress(object sender, ConsoleCancelEventArgs e)
{
    Log.Debug("Got Ctrl+C from console.");
    CancelTokenSource.Cancel();
}
Run Code Online (Sandbox Code Playgroud)

  • 此代码如何帮助您检测 Kestrel 何时完成初始化? (7认同)