老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)

操作IIS的應(yīng)用程序池與站點(diǎn)分配(C#)

一個應(yīng)用程序池可以有多個站點(diǎn),一個站點(diǎn)只對應(yīng)一個應(yīng)用程序池。

我們一直強(qiáng)調(diào)網(wǎng)站設(shè)計制作、做網(wǎng)站對于企業(yè)的重要性,如果您也覺得重要,那么就需要我們慎重對待,選擇一個安全靠譜的網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過程中的有力推手。專業(yè)網(wǎng)絡(luò)公司不一定是大公司,成都創(chuàng)新互聯(lián)公司作為專業(yè)的網(wǎng)絡(luò)公司選擇我們就是放心。

編程由來:

       存放在一個應(yīng)用程序池里的站點(diǎn)過多就不便于操作,所以需把其中一些站點(diǎn)分配到其他程序池中。

編程題目:

      用戶輸入一個數(shù)字或者一個數(shù)字+一個名字。程序?qū)φ军c(diǎn)的所在應(yīng)用程序池進(jìn)行統(tǒng)計,用戶輸入的數(shù)字用于限制應(yīng)用程序池里面的最大容量數(shù),如果超出該容量,將把超出的站點(diǎn)分配到其他程序應(yīng)用池,或者新建的一個應(yīng)用程序池,把站點(diǎn)分配進(jìn)去。

如果用戶輸入一個數(shù)字的情況,將遍歷所有程序應(yīng)用池;如果用戶輸入一個數(shù)字+一個名字的情況,將只對該名字的應(yīng)用程序池進(jìn)行操作;如果站點(diǎn)的名字和應(yīng)用程序池的名字一樣,將不進(jìn)行操作。

條件:

一、把DefautlAppPool應(yīng)用程序池或者含有字符"AppPool #"的應(yīng)用程序池里面的超出的站點(diǎn)分配到AppPool #?應(yīng)用程序池中("?"代表數(shù)字)

二、如果aspnet1應(yīng)用程序池里面的網(wǎng)站數(shù)超出用戶限制的數(shù)字,則分配到新建應(yīng)用程序池的命名方式為aspnet1-?;("?"代表數(shù)字,表示從屬aspnet1下的分支)

三、如二設(shè)置aspnet2,aspnet3,aspnet4應(yīng)用程序池

四、當(dāng)網(wǎng)站名字和應(yīng)用程序池的名字相同時,將不進(jìn)行操作

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

這是我在公司里面的任務(wù),以下是我公開的代碼(還不屬于最優(yōu)化的代碼,我把我的制作品拿出來以代表原創(chuàng)性,最優(yōu)化的代碼暫時不公布,如有需要,請聯(lián)系博主!)

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

新建一個控制臺應(yīng)用程序(C#編程語言,使用vs2005版本制作)

添加引用:System.DirectoryServices

class Program

   {

       static Hashtable hs = new Hashtable();//創(chuàng)建哈希表,保存池中的站點(diǎn)

       static string[] pls;//池數(shù)組

       static string[] nums;//應(yīng)用程序池中各自包含的網(wǎng)站數(shù)量

       static Hashtable boolhs = new Hashtable();//創(chuàng)建哈希表,保存池中站點(diǎn)數(shù)量是否滿

       static void Main(string[] args)

       {

           string strNum = Console.ReadLine();//用戶輸入信息

           pls = GetApplicationPools();//獲取應(yīng)用程序池名稱數(shù)組    

           foreach (string i in pls)//填充哈希表key值內(nèi)容

           {

               hs.Add(i, "");

               boolhs.Add(i, "false");

           }

           getpoolweb();

           WebNums();

           if (strNum.Length > 1)//判斷用戶輸入的數(shù)字+名稱

           {

               string[] pw = strNum.Split(' ');

               for (int i = 0; i < pls.Length; i++)

               {

                   if (pls[i] == pw[1])

                   {

                       if (int.Parse(nums[i]) > int.Parse(pw[0]))

                       {

                           boolhs[pls[i]] = "true";//將該池定義站點(diǎn)數(shù)量已滿

                           GetName(pw[1], int.Parse(pw[0]), int.Parse(nums[i]));

                           Console.WriteLine("編譯完畢!");

                       }

                       else Console.WriteLine("該"+pw[1].ToString()+"應(yīng)用程序池不需進(jìn)行操作!");

                   }

               }

           }

           else//判斷用戶輸入的數(shù)字

           {

               for (int i = 0; i < pls.Length; i++)

               {

                   if (int.Parse(nums[i]) > int.Parse(strNum))//如果超出

                   {

                       boolhs[pls[i]] = "true";//將該池定義站點(diǎn)數(shù)量已滿

                       GetName(pls[i], int.Parse(strNum), int.Parse(nums[i]));

                       Console.WriteLine("編譯完畢!");

                   }

               }

           }

           Console.ReadLine();

       }

       ///

       /// 判斷網(wǎng)站名與應(yīng)用程序池名稱是否相等

       ///

       /// 網(wǎng)站名稱

       /// 相等為假

       public static bool chname(string wnames)

       {

           bool ctf = true;

           foreach (string i in pls)

           {

               if (wnames == i)

                   ctf = false;

               else ctf = true;

           }

           return ctf;

       }

       ///

       /// 獲得池數(shù)組對應(yīng)的網(wǎng)站數(shù)量

       ///

       static void WebNums()

       {

           List weblist = new List();

           //string[] poolns = pooln.Split(',');

           foreach (string i in pls)

           {

               if (hs[i].ToString() != "")

                   weblist.Add(hs[i].ToString().Split(',').Length.ToString());

               else

                   weblist.Add("0");

           }

           nums = weblist.ToArray();

       }

       ///

       ///檢測應(yīng)用程序池的名稱

       ///

       ///應(yīng)用程序池的名稱

       ///指定的限制數(shù)

       ///該池中網(wǎng)站的數(shù)量

       ///

       static void GetName(string AppPoolName, int c, int inn)

       {

           int si = inn - c;//舊池中站點(diǎn)剩余量

           string[] kt = hs[AppPoolName].ToString().Split(',');

           while (true)

           {

               int ting = 0;

               foreach (string w in pls)

                   if (boolhs[w].ToString() == "true")

                       ting += 1;

               if (ting >= pls.Length) break;

               for (int i = 0; i < pls.Length; i++)

               {

                   if (boolhs[pls[i]].ToString() == "false")//如果哪個池的站點(diǎn)量可以容納

                   {                      

                       int d = c - int.Parse(nums[i]);

                       if (si < c)

                       {

                           for (int j = 0; j < si; j++)

                              if (chname(kt[j]))//判斷名稱是否存在

                                 movepool(kt[j], AppPoolName, pls[i]);//轉(zhuǎn)移站點(diǎn)

                       }

                       else

                       {

                           for (int j = 0; j < d; j++)

                               if (chname(kt[j]))

                                   movepool(kt[j], AppPoolName, pls[i]);

                       }

                       if (si-d < 0) break;

                       si = si - d;

                       boolhs[pls[i]] = "true";

                   }

               }

           }

           //需要新建的情況

           if(si>0)

           {

               int sy = int.Parse(Math.Ceiling((double)si / (double)c).ToString());//新建多少個

               for (int j = 1; j <= sy; j++)

               {

                   string ne = "";

                   bool bname = false;

                   int s = 1;

                   while (bname == false)

                   {

                       if (AppPoolName.StartsWith("aspnet")) ne = AppPoolName + "-" + s;

                       else if (AppPoolName.StartsWith("DefaultAppPool") && AppPoolName.StartsWith("AppPool #")) ne = AppPoolName + s;

                       bool bne = false;//判斷名稱是否存在

                       foreach (string n in pls)

                       {

                           if (n == ne)

                           {

                               bne = true;

                               break;

                           }

                       }

                       if (bne == true)

                           s += 1;

                       else bname = true;

                   }

                   AddAppPool(ne);//新建池

                   for (int i = 0; i < c ; i++)

                   {

                       if (i < si)

                       {

                           if (chname(kt[i]))//判斷名稱是否存在

                           {

                               movepool(kt[i], AppPoolName, ne);//轉(zhuǎn)移站點(diǎn)

                           }

                       }

                       //if (si < c)

                       //{

                       //    for (int j = 0; j < si; j++)

                       //        movepool(kt[j], AppPoolName, pls[i]);

                       //}

                       //else

                       //{

                       //    for (int j = 0; j < d; j++)

                       //        movepool(kt[j], AppPoolName, pls[i]);

                       //}

                   }

                   si = si - c;

               }

           }

       }

       #region 池與網(wǎng)站的操作(獲得所有池;獲得指定池的網(wǎng)站名稱;移動網(wǎng)站到新池)

       ///

       /// 獲取應(yīng)用程序池->數(shù)組

       ///

       ///

       public static string[] GetApplicationPools()

       {

           DirectoryEntry directoryEntry = new DirectoryEntry("IIS://LOCALHOST/W3SVC/AppPools");

           if (directoryEntry == null) return null;

           List list = new List();

           foreach (DirectoryEntry entry2 in directoryEntry.Children)

           {

               PropertyCollection properties = entry2.Properties;

               list.Add(entry2.Name.ToString().Trim());

           }

           return list.ToArray();

       }

       ///

       /// 獲得所有的應(yīng)用程序池和對應(yīng)站點(diǎn)

       ///

       static void getpoolweb()

       {

           DirectoryEntry root = null;

           try

           {

               root = new DirectoryEntry("IIS://localhost/W3SVC");

           }

           catch

           {

               return;

           }

           foreach (DirectoryEntry website in root.Children)

           {

               try

               {

                   if (website.SchemaClassName != "IIsWebServer") continue;

                   string comment = website.Properties["ServerComment"][0].ToString();

                   DirectoryEntry siteVDir = website.Children.Find("Root", "IISWebVirtualDir");

                   string poolname = "";

                   try

                   {

                       poolname = siteVDir.Properties["AppPoolId"][0].ToString().Trim();

                   }

                   catch (Exception ex)

                   {

                       Console.WriteLine(ex.Message);

                   }

                   if (poolname == "")

                   {

                       try

                       {

                           poolname = website.Properties["AppPoolId"][0].ToString().Trim();

                       }

                       catch (Exception ex)

                       {

                           Console.WriteLine(ex.Message);

                       }

                   }

                   //if (pooln == "") pooln = poolname;

                   //else pooln += "," + poolname;

                   //string[] poolns = pooln.Split(',');

                   foreach (string i in pls)

                   {

                       if (i == poolname)

                       {

                           if (hs[i].ToString() == "")

                               hs[i] = comment;

                           else hs[i] += "," + comment;

                       }

                   }

               }

               catch (Exception ex)

               {

                   Console.WriteLine(ex.Message);

               }

           }

           root.Close();

       }

       ///

       /// 新建池

       ///

       /// 應(yīng)用程序池名稱

       ///

       public static DirectoryEntry AddAppPool(string AppPoolName)

       {

           try

           {

               DirectoryEntry appPool = new DirectoryEntry("IIS://localhost/W3SVC/AppPools");

               DirectoryEntry findPool = null;

               try

               {

                   findPool = appPool.Children.Find(AppPoolName, "IIsApplicationPool");

               }

               catch (Exception) { }

               if (findPool == null)

               {

                   findPool = appPool.Children.Add(AppPoolName, "IIsApplicationPool");

                   findPool.CommitChanges();

                   appPool.CommitChanges();

               }

               //pooln += "," + AppPoolName;

               List a = new List();

               foreach (string b in pls)

                   a.Add(b);

               a.Add(AppPoolName);

               pls = a.ToArray();//添加新池到數(shù)組中

               WebNums();

               boolhs.Add(AppPoolName, "false");

               return findPool;

           }

           catch (Exception ex)

           {

               Console.WriteLine(ex.Message);

               return null;

           }

       }

       ///

       /// 移動網(wǎng)站到新池

       ///

       /// 網(wǎng)站名稱

       /// 舊池名稱

       /// 新池名稱

       static void movepool(string webns,string poolold, string poolns)

       {

           try

           {

               DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC");

               foreach (DirectoryEntry website in root.Children)

               {

                   if (website.SchemaClassName != "IIsWebServer") continue;

                   string comment = website.Properties["ServerComment"][0].ToString();

                   if (comment == webns)

                   {

                       DirectoryEntry siteVDir = website.Children.Find("Root", "IISWebVirtualDir");

                       siteVDir.Invoke("Put", new object[2] { "AppPoolId", poolns });

                       siteVDir.CommitChanges();

                       website.Invoke("Put", new object[2] { "AppPoolId", poolns });

                       website.CommitChanges();

                   }

               }

               for (int i = 0; i < pls.Length; i++)//遍歷舊池并修改原數(shù)目數(shù)組的數(shù)據(jù)

               {

                   if (pls[i] == poolold)

                   {

                       nums[i] = (int.Parse(nums[i]) - 1).ToString();

                       string[] h = hs[poolold].ToString().Split(',');

                       string hnew = "";

                       foreach (string s in h)

                           if (s != webns)

                           {

                               if (hnew == "")

                                   hnew = s;

                               else hnew += "," + s;

                           }

                       hs[poolold] = hnew;

                       if (hs[poolns].ToString() == "") hs[poolns] = webns;

                       else hs[poolns] += "," + webns;

                   }

                   if (pls[i] == poolns)

                   {

                       WebNums();

                       nums[i] = (int.Parse(nums[i]) + 1).ToString();

                   }

               }

           }

           catch (Exception ex)

           {

               Console.WriteLine(ex.Message);

           }

       }

       #endregion

   }

附件:http://down.51cto.com/data/2362946

分享題目:操作IIS的應(yīng)用程序池與站點(diǎn)分配(C#)
本文網(wǎng)址:http://www.xueling.net.cn/article/picecg.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 亚洲美女又黄又爽在线观看 | 亚洲av人无码激艳猛片 | 91操视频 | 国产太嫩了在线观看 | 亚洲中文久久精品无码软件 | 日韩欧美一区二区三区在线视频 | 日本免费极度色诱福利视频 | 狠狠影院 | 免费看黄色视频 | 中文字幕一区二区三 | 美女视频黄网站免费观看 | 国产在线观看高清 | 91免费污视频 | 成人免费午夜无码视频 | 久久精品99久久香蕉国产色戒 | 国产日韩欧美三区 | 亚洲综合在线一区 | 国产高清无码在线一区二区 | 激情信箱免费观看 | 日韩综合一区二区 | 在教室伦流澡到高潮H免费视频 | 嫩草影院中文字幕 | 国产成人欧美一区二区三区一色天 | 国产精品人妻一区二区三区四区 | 日韩三级高清 | 国产欧美日韩二区 | 一区二区三区在线视频 | 风韵老女人性按摩推油 | 欧美人与动人物牲交免费观看久久 | 我要色综合网 | 超碰免费在线播放 | 欧洲-级毛片内射八十老太婆 | 99国产精品人妻无码免费农村 | 91av视频在线观看免费 | 99久久国产综合精品色伊 | 天天干伊人 | 黄色工厂这里只有精品 | 中国XXXX做受视频 | 亚洲国产天堂久久综合网 | 另类专区成人 | 国产日本欧美一区二区三区 |