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