中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

C#程序中操作IIS的應用程序池與站點分配
來源:易賢網(wǎng) 閱讀:1178 次 日期:2014-08-20 15:23:34
溫馨提示:易賢網(wǎng)小編為您整理了“C#程序中操作IIS的應用程序池與站點分配”,方便廣大網(wǎng)友查閱!

一個應用程序池可以有多個站點,一個站點只對應一個應用程序池。

編程由來:

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

編程題目:

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

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

條件:

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

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

三、如二設置aspnet2,aspnet3,aspnet4應用程序池

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

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

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

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

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

添加引用:System.DirectoryServices

class Program

{

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

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

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

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

static void Main(string[] args)

{

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

pls = GetApplicationPools();//獲取應用程序池名稱數(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";//將該池定義站點數(shù)量已滿

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

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

}

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

}

}

}

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

{

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

{

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

{

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

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

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

}

}

}

Console.ReadLine();

}

/// <summary>

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

/// </summary>

/// <param name="wnames">網(wǎng)站名稱</param>

/// <returns>相等為假</returns>

public static bool chname(string wnames)

{

bool ctf = true;

foreach (string i in pls)

{

if (wnames == i)

ctf = false;

else ctf = true;

}

return ctf;

}

/// <summary>

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

/// </summary>

static void WebNums()

{

List<string> weblist = new List<string>();

//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();

}

///<summary>

///檢測應用程序池的名稱

///</summary>

///<param name="AppPoolName">應用程序池的名稱</param>

///<param name="c">指定的限制數(shù)</param>

///<param name="inn">該池中網(wǎng)站的數(shù)量</param>

///<returns></returns>

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

{

int si = inn - c;//舊池中站點剩余量

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")//如果哪個池的站點量可以容納

{

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)移站點

}

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)移站點

}

}

//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)站到新池)

/// <summary>

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

/// </summary>

/// <returns></returns>

public static string[] GetApplicationPools()

{

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

if (directoryEntry == null) return null;

List<string> list = new List<string>();

foreach (DirectoryEntry entry2 in directoryEntry.Children)

{

PropertyCollection properties = entry2.Properties;

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

}

return list.ToArray();

}

/// <summary>

/// 獲得所有的應用程序池和對應站點

/// </summary>

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();

}

/// <summary>

/// 新建池

/// </summary>

/// <param name="AppPoolName">應用程序池名稱</param>

/// <returns></returns>

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<string> a = new List<string>();

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;

}

}

/// <summary>

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

/// </summary>

/// <param name="webns">網(wǎng)站名稱</param>

/// <param name="poolold">舊池名稱</param>

/// <param name="poolns">新池名稱</param>

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

}

更多信息請查看IT技術專欄

更多信息請查看網(wǎng)絡編程
易賢網(wǎng)手機網(wǎng)站地址:C#程序中操作IIS的應用程序池與站點分配

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美成人性网| 国产精品美女久久久| 国产精品美女久久久免费| 久久久欧美一区二区| 亚洲免费影院| 亚洲精品国产精品国自产在线 | 欧美日韩午夜| 久久影院亚洲| 欧美在线3区| 欧美一区2区三区4区公司二百| 夜夜爽夜夜爽精品视频| 亚洲精品国产视频| 亚洲丁香婷深爱综合| 国产日韩欧美二区| 国产精品美女www爽爽爽| 欧美巨乳在线观看| 欧美国产日韩a欧美在线观看| 久久精品国产精品亚洲综合| 欧美亚洲综合久久| 亚洲欧美精品在线| 午夜精品久久99蜜桃的功能介绍| 亚洲性色视频| 亚洲在线黄色| 午夜日韩av| 久久福利精品| 欧美在线视屏| 久久国产精品久久久久久电车| 中文精品在线| 午夜精品久久久久久久久久久久久 | 欧美日精品一区视频| 欧美日韩国产91| 欧美色123| 欧美日韩一区二| 欧美午夜寂寞影院| 国产精品美女久久福利网站| 国产区精品在线观看| 激情六月婷婷综合| 亚洲国产视频直播| 中文在线一区| 午夜国产精品视频免费体验区| 欧美在线视屏 | 久久综合网络一区二区| 麻豆91精品91久久久的内涵| 久久久国产精品一区| 牛牛国产精品| 欧美视频在线观看| 国产一区在线免费观看| 亚洲大胆在线| 亚洲视频观看| 久久九九有精品国产23| 欧美国产视频在线| 国产精品一区视频| 亚洲国产精品成人一区二区 | 亚洲三级影片| 亚洲欧美日韩电影| 久久综合福利| 国产精品乱码| 亚洲欧洲一区二区在线观看 | 亚洲二区三区四区| 亚洲一区二区在线免费观看视频 | 亚洲一区在线观看视频| 久久久久久久一区| 国产精品va在线| 亚洲福利视频免费观看| 亚洲欧美日韩一区二区| 欧美高清在线视频| 国产欧美综合在线| 中文精品一区二区三区| 久久亚洲一区| 国产日本欧美在线观看| 99国产精品国产精品久久| 久久久久成人精品免费播放动漫| 欧美日韩亚洲一区二| 在线欧美视频| 久久精品国产第一区二区三区最新章节| 欧美区国产区| 亚洲激情av| 久久久水蜜桃av免费网站| 国产精品视频精品| 一区二区三区欧美成人| 欧美高清视频在线播放| 一区二区视频免费在线观看 | 久久精品国产一区二区电影 | 一本一本a久久| 久久夜色精品亚洲噜噜国产mv| 欧美午夜视频网站| 夜夜夜精品看看| 欧美裸体一区二区三区| 在线成人免费观看| 欧美日韩午夜剧场| 亚洲国产成人久久综合| 久久精品免费观看| 国产亚洲精品自拍| 欧美制服第一页| 国产欧美一区二区视频| 亚洲欧美精品一区| 欧美三日本三级少妇三2023| 一区二区欧美在线观看| 欧美日韩国产丝袜另类| 9i看片成人免费高清| 一区二区三区在线不卡| 久久嫩草精品久久久精品一| 激情久久综艺| 久久免费观看视频| 亚洲国产1区| 欧美精品免费播放| 一区二区三区欧美日韩| 欧美日韩亚洲视频| 亚洲香蕉伊综合在人在线视看| 国产精品理论片| 欧美在线观看视频一区二区| 国产亚洲精品aa午夜观看| 久久久精品网| 亚洲欧洲久久| 欧美体内she精视频| 亚洲欧美国产77777| 国产农村妇女毛片精品久久莱园子 | 国产日韩欧美在线| 久久久www| 亚洲欧洲综合| 国产精品激情| 欧美中文日韩| 亚洲第一在线视频| 欧美日韩在线播| 欧美亚洲专区| 亚洲国产一区视频| 欧美午夜精品久久久久久超碰| 亚洲欧美中文在线视频| 伊人色综合久久天天| 免费在线观看成人av| 日韩视频永久免费| 国产欧美一区二区精品婷婷| 久久亚洲综合网| 正在播放亚洲| 狠狠做深爱婷婷久久综合一区| 美女脱光内衣内裤视频久久影院| 亚洲日本理论电影| 国产小视频国产精品| 欧美久久久久中文字幕| 欧美一级片久久久久久久| 亚洲激情网站| 国产日韩欧美高清| 欧美精品久久久久久| 欧美在线视频一区二区三区| 欧美三级日韩三级国产三级| 久久精品人人爽| 亚洲亚洲精品三区日韩精品在线视频| 国产一区二区按摩在线观看| 欧美精品国产精品日韩精品| 午夜影院日韩| 亚洲精选一区二区| 黄色一区三区| 国产伦精品一区二区三区视频孕妇| 欧美h视频在线| 久久av资源网| 亚洲男人的天堂在线| 亚洲国产精品va在线看黑人动漫| 国产麻豆精品久久一二三| 欧美日本韩国一区| 久久精品国产欧美亚洲人人爽| 亚洲综合日本| 一区二区免费看| 亚洲欧洲视频| 欧美日韩1区| 欧美成年人在线观看| 久久国产精品网站| 午夜精品一区二区三区在线播放| 亚洲精品社区| 在线免费观看成人网| 国产性做久久久久久| 欧美国产精品专区| 男女激情久久| 裸体歌舞表演一区二区| 在线综合+亚洲+欧美中文字幕| 亚洲精品久久久久久下一站| 亚洲国产精品毛片| 在线观看亚洲| 亚洲大片精品永久免费| 在线观看欧美日韩国产| 永久久久久久| 亚洲日本电影在线| 99视频+国产日韩欧美| 99精品欧美一区二区三区| 亚洲精品一区二区三区樱花| 亚洲第一黄网| 亚洲精品一区二区三区福利| 亚洲精品久久久久久久久| 亚洲久久一区二区| 亚洲精品亚洲人成人网| 91久久久久久久久| 亚洲人成小说网站色在线| 亚洲精品一区久久久久久| 亚洲伦理中文字幕| 亚洲一区二区在线看| 亚洲伊人观看| 亚洲免费在线视频| 午夜一级在线看亚洲| 午夜精彩国产免费不卡不顿大片| 欧美一区二区三区免费看 | 99一区二区|