예제 #1
0
        public void InitPools(string _ip)
        {
            try
            {
                ServerManager  server = ServerManager.OpenRemote(_ip);
                var            pools  = server.ApplicationPools;
                List <IssPool> list   = new List <IssPool>();
                foreach (ApplicationPool pool in pools)
                {
                    IssPool IssPool = new IssPool();

                    int appCount = 0;
                    foreach (Site site in server.Sites)
                    {
                        foreach (Microsoft.Web.Administration.Application application in site.Applications)
                        {
                            if (application.ApplicationPoolName == pool.Name)
                            {
                                appCount++;
                                //IssPool.StationList.Add(new StationDetail
                                //{
                                //    StationName = site.Name,
                                //    Status = dic[((int)pool.State).ToString()]
                                //});
                            }
                        }
                    }
                    IssPool.ProcessCount = appCount;
                    IssPool.Name         = pool.Name;

                    IssPool.Status     = dic[((int)pool.State).ToString()];
                    IssPool.NetVersion = pool.ManagedRuntimeVersion;
                    IssPool.Identity   = pool.ProcessModel.IdentityType.ToString();
                    list.Add(IssPool);
                }

                //DirectoryEntry pools = new DirectoryEntry(string.Format(path, this.tbIp.Text));
                //foreach (DirectoryEntry item in pools.Children)
                //{
                //    IssPool IssPool = new IssPool();
                //    IssPool.Name = item.Name;
                //    if (item.Properties["AppPoolState"].Value.ToString() == "2")
                //        IssPool.Status = "已启动";
                //    else if (item.Properties["AppPoolState"].Value.ToString() == "4")
                //        IssPool.Status = "已停止";
                //    IssPool.NetVersion = item.Properties["ManagedRuntimeVersion"].Value.ToString();
                //    //IssPool.Identity = pool.ProcessModel.IdentityType.ToString();
                //    object[] apps = item.Invoke("EnumAppsInPool", null) as object[];//站点数量
                //    IssPool.ProcessCount = apps.Count();
                //    list.Add(IssPool);
                //}
                dgvIssPools.DataSource = list;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
예제 #2
0
        /// <summary>
        /// 获取选中程序池
        /// </summary>
        /// <returns></returns>
        public List <IssPool> GetSelectList()
        {
            List <IssPool> list = new List <IssPool>();

            foreach (DataGridViewRow row in dgvIssPools.SelectedRows)
            {
                IssPool IssPool = (IssPool)row.DataBoundItem;
                list.Add(IssPool);
            }
            return(list);
        }
예제 #3
0
 private void dgvIssPools_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     currentIssPool = (IssPool)dgvIssPools.Rows[e.RowIndex].DataBoundItem;
 }