转自孟子E章
http://blog.csdn.net/net_lover
IIS代码管理(1):遍历应用程序池和属性
下面的代码实现遍历 IIS 6应用程序池的一个方法:
System.DirectoryServices.DirectoryEntry appPoolRoot = new System.DirectoryServices.DirectoryEntry(@"IIS://localhost/W3SVC/AppPools");
//得到默认应用程序池的方法可以直接使用 IIS://localhost/W3SVC/AppPools/DefaultAppPool
System.Collections.IEnumerator AppPoolEnumer = appPoolRoot.Children.GetEnumerator();
while (AppPoolEnumer.MoveNext())
{
System.DirectoryServices.DirectoryEntry EntryPool = (System.DirectoryServices.DirectoryEntry)AppPoolEnumer.Current;
System.DirectoryServices.PropertyCollection properties = EntryPool.Properties;
System.Collections.IDictionaryEnumerator propertiesEnumer = properties.GetEnumerator();
textBox1.Text += "应用程序池名称 = " + EntryPool.Name + System.Environment.NewLine + "____________________________________________" + System.Environment.NewLine;
while (propertiesEnumer.MoveNext())
{
System.DirectoryServices.PropertyValueCollection propertyvalue = (System.DirectoryServices.PropertyValueCollection)propertiesEnumer.Value;
if (propertyvalue.Count > 1)
{
for (int j = 0; j < propertyvalue.Count; j++)
{
textBox1.Text += "Name=" + propertiesEnumer.Key.ToString() + " Value= " + propertyvalue[j] + "--";
}
}
else
{
textBox1.Text += "Name=" + propertiesEnumer.Key.ToString() + " Value= " + propertyvalue[0] + System.Environment.NewLine;
}
}
}
IIS代码管理(2):创建应用程序池和属性
下面的代码实现应用程序池的创建,并设置一些属性。
string strAppPoolName = "MyAppPool1";
System.DirectoryServices.DirectoryEntry appPoolRoot = new System.DirectoryServices.DirectoryEntry(@"IIS://localhost/W3SVC/AppPools");
System.DirectoryServices.DirectoryEntry newAppPool = appPoolRoot.Children.Add(strAppPoolName, "IIsApplicationPool");
//如果指定标识,可以使用下面的方法,否则,可以直接执行 CommitChanges 方法:
// 0 = Local System(本地系统)
// 1 = Local Service(本地服务)
// 2 = Network Service(网络服务)
// 3 = Custom Identity(自定义配置)需要设置 WAMUserName 和 WAMUserPass 属性
newAppPool.Properties["AppPoolIdentityType"][0] = 3;
newAppPool.Properties["WAMUserName"][0] = @"VISTA/1"; //domain/用户,注意:此用户必须在IIS_WPG组中
newAppPool.Properties["WAMUserPass"][0] = "1";
//其它属性类似,如设置Web园数目:
newAppPool.Properties["MaxProcesses"][0] = 5;
newAppPool.CommitChanges();