Как я могу обнаружить запуск пула приложений IIS

Есть ли способ определить, когда пул приложений IIS (6 или 7.0) запускается (или действительно выключается) или перерабатывается вручную через IIS Manager?

Это не требуется в II7.5 из-за модуля инициализации приложения.

Но мне нужно знать, закрывается ли пул приложений, чтобы я мог его перезапустить. и когда он запускается, сделайте прогрев веб-приложения в этом пуле.

Я задавался вопросом, можно ли будет отслеживать события в журнале сервера с помощью планировщика, но я не могу найти записи журнала, когда пул приложений отключается вручную.

Я понимаю, что могут быть случаи, когда пул приложений дает сбой катастрофически и не регистрируется.

Спасибо

1 ответ

Для IIS 7 вы можете использовать Microsoft.Web.Administration dll. Вы можете проверять, создавать состояния бассейнов программно. ApplicationPool.State показывает состояние пула приложений.

Вот пример из iis.net добавляет пул.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Web.Administration;
namespace MSWebAdmin_Application
{       
    class Program
    {
        static void Main(string[] args)
        {
            ServerManager serverManager = new ServerManager();
            Site site = serverManager.Sites["Racing Cars Site"];
            site.Name = "Racing Site";
            site.Applications[0].VirtualDirectories[0].PhysicalPath = "d:\\racing";
            serverManager.ApplicationPools.Add("RacingApplicationPool");
            serverManager.Sites["Racing Site"].Applications[0].ApplicationPoolName = "RacingApplicationPool";
            ApplicationPool apppool = serverManager.ApplicationPools["RacingApplicationPool"];
            apppool.ManagedPipelineMode = ManagedPipelineMode.ISAPI;
            serverManager.CommitChanges();
    apppool.Recycle();
        }
    }
} 

http://www.iis.net/learn/manage/scripting/how-to-use-microsoftwebadministration

Для IIS 6 Проверьте состояние пула приложений (IIS 6) с помощью C#

Другие вопросы по тегам