是否需要判断是win 2000还是win 2003?

解决方案 »

  1.   

            /// <summary>
            /// 连接字符串
            /// </summary>
            private string _connectString
            {
                get
                { 
                    return "IIS://" + comboxIp.Items[comboxIp.SelectedIndex].ToString() + "/W3SVC";
                }
            }        /// <summary>
            /// 程序池字符串
            /// </summary>
            private string _poolString
            {
                get
                {
                    return _connectString + "/AppPools";
                }
            }        public FormMain()
            {
                InitializeComponent();
                InitApp();
            }        /// <summary>
            /// 初始化
            /// </summary>
            private void InitApp()
            {
                comboxIp.Items.Add("localhost");
                comboxIp.SelectedIndex = 0;            //comboxPoolList.Items.AddRange(enumSite());
                comboxPoolList.Items.AddRange(enumPool());
                if (comboxPoolList.Items.Count > 0)
                {
                    comboxPoolList.SelectedIndex = 0;
                }
                BindListView();
            }        private void BindListView()
            {
                listIIS.Items.Clear();
                listIIS.Columns.Clear();
                listIIS.Columns.Add("索引", 50);
                listIIS.Columns.Add("站点名称", 100);
                listIIS.Columns.Add("状态", 100);
                listIIS.View = View.Details;
                listIIS.FullRowSelect = true;            for (int i = 0; i < enumSite().Length; i++)
                {
                    ListViewItem item = new ListViewItem(i.ToString());
                    item.SubItems.Add(enumSite()[i]);
                    item.SubItems.Add(enumSiteState()[i]);
                    listIIS.Items.AddRange(new ListViewItem[] { item }); 
                }
            }        /// <summary>
            /// 获得站点列表
            /// </summary>
            /// <returns></returns>
            private string[] enumSite()
            {
                List<string> siteName = new List<string>();
                try
                {
                    DirectoryEntry root = GetDirectoryEntry(_connectString);
                    foreach (DirectoryEntry e in root.Children)
                    {
                        if (e.SchemaClassName == "IIsWebServer")
                        {
                            siteName.Add(e.Properties["ServerComment"].Value.ToString());
                        }
                        totalServerCount++;
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show("程序出错:" + e.Message);
                }
                return siteName.ToArray();
            }        /// <summary>
            /// 获得站点状态列表
            /// </summary>
            /// <returns></returns>
            private string[] enumSiteState()
            {
                List<string> siteState = new List<string>();
                try
                {
                    DirectoryEntry root = GetDirectoryEntry(_connectString);
                    foreach (DirectoryEntry e in root.Children)
                    {
                        if (e.SchemaClassName == "IIsWebServer")
                        {
                            string state = "";
                            switch (e.Properties["ServerState"].Value.ToString())
                            {
                                case "1":
                                    state = "启动中";
                                    break;
                                case "2":
                                    state = "已启动";
                                    break;
                                case "3":
                                    state = "停止中";
                                    break;
                                case "4":
                                    state = "已停止";
                                    break;
                                case "5":
                                    state = "暂停中";
                                    break;
                                case "6":
                                    state = "已暂停";
                                    break;
                                case "7":
                                    state = "进行中";
                                    break;
                            }
                            siteState.Add(state);
                        }
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show("程序出错:" + e.Message);
                }
                return siteState.ToArray();
            }        private DirectoryEntry GetDirectoryEntry(string path)
            {
                return new DirectoryEntry(path);
            }        /// <summary>
            /// 程序池列表
            /// </summary>
            /// <returns></returns>
            private string[] enumPool()
            {
                List<string> poolList = new List<string>();
                try
                {
                    DirectoryEntry appPools = GetDirectoryEntry(_poolString );
                    foreach (DirectoryEntry a in appPools.Children)
                    {
                        poolList.Add(a.Name);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("程序错误:" + ex.Message);
                }
                return poolList.ToArray();
            }