繁体   English   中英

ApplicationPool类已停止事件

[英]ApplicationPool class stopped event

我正在使用ApplicationPool类的ApplicationPool.Stop方法通过C#代码停止应用程序池。 这个方法停止了应用程序池,没关系。 但问题是我想检测池何时停止,因为该方法需要一些时间才能使应用程序池处于停止状态。 是否有任何事件应该连线以检测应用程序池是否已停止?

编辑:我不能使用Global.asax(我停止应用程序池的站点),因为我从另一个应用程序停止应用程序池。

您可以SpinWait直到您的应用程序池停止。 像这样的东西:

ApplicationPool pool = //your pool here.
pool.Stop();
if (SpinWait.SpinUntil(() => pool.State == ObjectState.Stopped, TimeSpan.FromSeconds(30)))
{
    //The application pool has stopped
}
else
{
    //The application pool did not stop within 30 seconds.
    //An error probably occured.
}

您不必指定超时,但我强烈推荐它。 如果不这样做,则可能会完全阻止其余的进程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM