Как я могу обнаружить запуск пула приложений 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#