有没有办法检测IIS(6或7.0)应用程序池何时启动(或确实关闭)或通过IIS管理器手动回收?
由于其应用初始化模块,II7.5中不需要这样做。
但是我需要知道应用程序池是否关闭,所以我可以重新启动它。当它启动时,对该池上的Web应用程序进行预热。
我想知道是否可以使用调度程序查看服务器日志中的事件,但是当手动关闭应用程序池时,我无法找到日志条目。
我意识到可能存在应用程序池灾难性地失败并且没有记录的情况。
由于
答案 0 :(得分:1)
对于IIS 7,您可以使用Microsoft.Web.Administration dll.您可以检查,创建池的状态programaticaly。 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 Check the status of an application pool (IIS 6) with C#