簡體   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