IIS - 自建網站管理程式

IIS - 自建網站管理程式

這陣子在準備要提供給使用者安裝的程式,原本是想要利用VS2010提供的Deploy功能,或是利用Web安裝專案,可是這些都必需先有一個原本的站台才能夠發佈;因為不確定使用者有相關的IT人員來協助這件事,所以我希望安裝程式能夠把這部份一起做掉。

 

在C#裡,我們可以利用ADSI的方式,有點類似LDAP,利用目錄服務存取:


然後再對站台進行相關存取及設定(屬性設定可以參考IIS Metabase)。

 

CodeProject上面有人已經寫了相關的管理程式:Use C# to manage IIS

 

可惜的是這個並不包含了ASP.NET的版本設定,如果電腦裡面有裝1.1的Framework,他會預先設定成1.1的;要換成2.0的也很簡單,也是透過屬性設定;不過要特別注意的是,如果是站台,要先建立之後再去改設定,不然會找不到值哦!(ScriptMaps的設定多達5、60項,所以要把原來的再存回去)


PropertyValueCollection scriptMaps = root.Properties["ScriptMaps"];

object[] allValues = (object[])scriptMaps.Value;
object[] newValues = new object[allValues.Length];
string oldVersion = "v1.1.4322";
string newVersion = "v2.0.50727";
for (int i = 0; i < allValues.Length; i++)
{
	if (allValues[i] is string)
	{
		string temp = allValues[i] as string;
		if (temp.Contains(oldVersion))
		{
			newValues[i] = temp.Replace(oldVersion, newVersion);
		}
		else
		{
			newValues[i] = allValues[i];
		}
	}
	else
	{
		newValues[i] = allValues[i];
	}
}
scriptMaps.Value = newValues;
root.CommitChanges(); //存回站台

這樣就可以簡單的建立我要的站台囉!

 

PS:這套方法 IIS 6 及 IIS 7都可以使用。

 

相關連結:

IIS Metabase Properties

Using ADSI to Configure IIS

 

Dotblogs 的標籤: ,