Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ApplicationPool类停止事件_C#_Asp.net_.net_Iis 7.5 - Fatal编程技术网

C# ApplicationPool类停止事件

C# ApplicationPool类停止事件,c#,asp.net,.net,iis-7.5,C#,Asp.net,.net,Iis 7.5,我使用类的方法通过C#代码停止应用程序池。此方法将停止应用程序池,这是正常的。但问题是,我想检测池何时停止,因为该方法需要一些时间才能使应用程序池处于停止状态。是否有任何事件需要我连线以检测应用程序池是否已停止 编辑:我无法使用Global.asax(我正在停止应用程序池的站点),因为我正在从另一个应用程序停止应用程序池。您可以等待应用程序池停止。大概是这样的: ApplicationPool pool = //your pool here. pool.Stop(); if (SpinWait.

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


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

您可以等待应用程序池停止。大概是这样的:

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.
}

您不必指定超时,但是我强烈建议您这样做。如果不这样做,则可能会完全阻塞进程的其余部分。

如果在asp.net应用程序中执行此操作,则可以在Global.asax-application\u End中处理此操作。或者您正在从另一个应用程序执行此操作?
void应用程序是否在
Global.asax