我正在编写一个Web监视器应用程序,它提供有关IIS服务器上所有应用程序池/应用程序的信息。我在C#中寻找一种方法,以编程方式检查IIS应用程序是否正在运行而不会导致它运行,如果不是的话。
这是我发现的......
#3和#4之间我遇到了麻烦。应用程序已结束,但如果我尝试向应用程序发送Http请求,它将自动启动。我正在寻找一种方法来以编程方式确定应用程序是否已经结束(当工作进程仍然处于活动状态等待关闭时)而不重新启动应用程序。
如果您不确定我在说什么,我可以尝试提供更多细节。
此致 杰里米
答案 0 :(得分:1)
我在MSDN上发现了这个
public bool CheckIISRunning()
{
ServiceController controller = new ServiceController("W3SVC");
return controller.Status == ServiceControllerStatus.Running;
}
为此,你需要有 添加了System.ServiceProcess作为参考。
答案 1 :(得分:0)
Microsoft已创建一个VBScript文件来标识IIS应用程序池(按进程ID)。如果您在谷歌上搜索“iisapp.vbs”,它应该指向正确的方向。
注意:我不是100%确定它可以与Windows Server 2008一起使用,但确实适用于2003.
答案 2 :(得分:0)
在IIS7中,您可以使用 appcmd apppool /?查看可用的可能性。