c#获取iis站点信息
开头添加组件:using System.DirectoryServices;
在界面窗口我定义了一个ListView名字叫lvWebSite,作为存储站点信息的储存器。
string entPath = String.Format("IIS://{0}/w3svc", "localhost");
private void ListAllWebSites()
{
DirectoryEntry ent = new DirectoryEntry(entPath);
foreach (DirectoryEntry child in ent.Children)
{
string[] items = new string[6];
if (child.SchemaClassName == "IIsWebServer")
{
string siteName = child.Properties["ServerComment"].Value.ToString(); //得到网站名字
items.SetValue(siteName, 0);//设置网站名字
items.SetValue(child.Name.ToString(), 1);// 设置网站标识符
object o = child.Properties["ServerBindings"].Value;
string others = "";
if (o is Array)
{
object[] oToArr = (object[])o;
others = oToArr[0].ToString();
}
else
{
others = o.ToString();
}
char[] splitChar = { ':' };
string[] strArr = others.Split(splitChar);
if (strArr[0] == "" || strArr[0] == null)
{
items.SetValue("* 全部未分配 *", 4);// 设置网站的ip地址
}
else
{
items.SetValue(strArr[0], 4);// 设置网站的ip地址
}
items.SetValue(strArr[1], 5);//网站的端口
items.SetValue(strArr[2], 3);// 网站的主机头
items.SetValue(webSiteState(Convert.ToInt32(child.Properties["ServerState"][0].ToString())), 2);// 网站状态
//webSiteState根据得到的数值得到网站的状态
ListViewItem lvi = new ListViewItem(items);
lvWebSite.Items.Add(lvi);
}
}
}
private string webSiteState(int s)
{
string strState = "";
if (s == 1)
{
strState = "正在启动";
}
else if (s == 2)
{
strState = "正在运行";
}
else if (s == 3)
{
strState = "正在停止";
}
else if (s == 4)
{
strState = "已停止";
}
else if (s == 5)
{
strState = "正在暂停";
}
else if (s == 6)
{
strState = "已暂停";
}
else if (s == 7)
{
strState = "Continuing";
}
return strState;
}