.net操作IIS中的虛擬目錄


1.創建IIS虛擬目錄
 用到的命名空間:System.DirectoryServices(須先引入System.DirectoryServices.dll)
 DirectoryEntry的功能是目錄入口。使用過ADSI的人都知道操作IIS,WinNT這些時,我們還需要提供他們的Path,操作IIS時,這個Path的格式爲: 
 IIS://ComputerName/Service/Website/Directory
 
 ComputerName:即操作的服務器的名字,可以是名字也可以是IP,經常用的就是localhost 
 Service:即操作的服務器,IIS中有Web,也有FTP,還有SMTP這些服務,我們主要是操作IIS的Web功能,因此此處就是"W3SVC",如果是FTP則應是"MSFTPSVC"
 WebSite:一個IIS服務中可以包括很多的站點,這個就用於設置操作的站點。他的值是一個數字,默認是1,表示缺省站點,如果有其它,則從1開始依次類推。 
 Directory:不用說,即操作的目錄名稱,一個站點一般頂層目錄爲"ROOT",其它目錄則是他的孩子(Child)

 獲取一個站點的頂層目錄(根目錄): DirectoryEntry rootfolder = new DirectoryEntry("IIS://localhost/W3SVC/1/ROOT");(如果創建這個對象是沒有發生異常,則表示這個目錄是真實存在的)
 DirectoryEntry newVirDir = rootfolder.Children.Add("Aspcn","IIsWebVirtualDir");(假設添加的新虛擬目錄名稱是"Aspcn","IIsWebVirtualDir"爲schema的類命,表明加入的目錄類型)
 newVirDir.Invoke("AppCreate",true);(使用DirectoryEntry的Invoke方法,調用ADSI中的"AppCreate"方法將目錄真正創建)
 newVirDir.CommitChanges();
 rootfolder.CommitChanges();
 創建新目錄時,也可以同時給這個目錄的屬性賦值,但實戰經驗表明,如果創建時就賦值,很多屬性不能賦值成功,如真實目錄的"path"屬性。最好先創建目錄,後再賦值,即更新目錄信息。

2.更新虛擬目錄
 IIS的一些重要設置,如可讀(AccessRead)、可寫(AccessWrite)、可執行(AccessExecute)等,都可通過對DirectoryEntry的Properties屬性集合的賦值來實現。賦值方式分兩種:
  (1)調用Properties集合的Add方法,如: newVirDir.Properties["AccessRead"].Add(true);
  (2)對第一個索引值賦值,如:dir.Properties["AccessRead"][0] = true;
 在進行賦值之前確定需要賦值的目標,可以使用DirectoryEntries類的Find方法,如:DirectoryEntry de = rootfolder.Children.Find("Aspcn","IIsVirtualDir");
 虛擬目錄的屬性值很多,比較常用的是:AccessRead,AccessWrite,AccessExecute,AccessScript,DefaultDoc,EnableDefaultDoc,Path

3.刪除虛擬目錄
 刪除虛擬目錄就是先找到要刪除的虛擬目錄,然後調用AppDelete方法:
 DirectoryEntry de = rootfolder.Children.Find("Aspcn","IIsVirtualDir");
 de.Invoke("AppDelete",true);
 rootfolder.CommitChanges();
 另一個種方式,就是調用Root目錄的Delete方法:
 object[] paras = new object[2];
 paras[0] = "IIsWebVirtualDir"; //表示操作的是虛擬目錄
 paras[1] = "Aspcn";
 rootfolder.Invoke("Delete",paras);
 rootfolder.CommitChanges();

 

本文轉自:http://www.cnblogs.com/freeliver54/archive/2008/04/16/1155574.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章