如何确定Web应用程序当前是否正在运行

我有一个在IIS 6下运行的ASP.NET Web应用程序,另一个负责监视和报告状态的进程。

我希望通过监视进程来对Web应用程序进行示例,以便通过访问Web应用程序上的专用处理程序来检查其状态,但是如果它未运行,我不想“唤醒”Web应用程序。

是否有一个选项来确定特定的Web应用程序当前是否在运行? 如果有这样的选项,我将能够首先检查应用程序是否正在运行,然后才能访问处理程序以检查其状态。

谢谢。


今年早些时候我必须为IIS7做类似的事情,不知道这是否适用于IIS6,但这是我做的。

        var iis = new DirectoryEntry("IIS://" + Environment.MachineName + "/w3svc");

        foreach (DirectoryEntry site in iis.Children)
        {
            if (site.SchemaClassName.ToLower() == "iiswebserver")
            {
                Console.WriteLine("Name: " + site.Name);
                Console.WriteLine("State: " + site.Properties["ServerState"].Value);
            }
        }

ServerState返回2开始和4停止。


您可以使用HTTP HEAD请求来检查网站是否启动。 这里是一个例子来做同样的事情。

http://www.eggheadcafe.com/tutorials/aspnet/2c13cafc-be1c-4dd8-9129-f82f59991517/the-lowly-http-head-reque.aspx


我会在ASP.NET网站中包含一个asmx文件,这是一个具有简单Ping功能的Web服务,但它仍然会唤醒网站的应用程序池。

链接地址: http://www.djcxy.com/p/3645.html

上一篇: How to determine whether a web application is currently running

下一篇: How can I unit test something that uses VisualTreeHelper?