亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#創建IIS虛擬目錄的方法

2020-01-24 01:48:23
字體:
來源:轉載
供稿:網友

本文實例講述了C#創建IIS虛擬目錄的方法。分享給大家供大家參考。具體分析如下:

DirectoryEntry是.Net給我們的一大禮物,他的名字我們就知道他的功能--目錄入口。使用過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");

如果我們創建這個對象是沒有發生異常,則表示這個目錄是真實存在的。

下面我們來添加新的虛擬目錄,比如我們要加的是"Aspcn":

DirectoryEntry newVirDir = rootfolder.Children.Add("Aspcn","IIsWebVirtualDir"); newVirDir.Invoke("AppCreate",true); newVirDir.CommitChanges(); rootfolder.CommitChanges();

創建目錄的思路很簡單,即在根目錄的子集(rootfolder.Children)中再添加一條記錄,這里使用的是DirectoryEntries類中的Add方法,它返回的是一個DirectoryEntry,表示新加入的目錄,第一個參數是虛擬目錄的名字,第二個則是Schema的類名以表明我們加入的目錄類型。然后再使用DirectoryEntry的Invoke方法,調用ADSI中的"AppCreate"方法將目錄真正創建(似乎不走這一步也可以創建目錄成功,但是為了保險起見,大家還是用吧),最后便是依次調用新、根目錄的CommitChanges方法,確認此次操作。 

在創建新目錄時,我們也可以同時給這個目錄的屬性賦值,但是我的實戰經驗告訴我,最好不要這樣做,如果創建時就賦值,將有很多屬性不能賦值成功,比如重要的表示真實目錄的Path屬性。因此飛刀建議大家最好是先創建目錄,然后再賦值,即更新目錄信息。

更新虛擬目錄 

相信大家對IIS都比較熟悉,了解IIS中一些重要的設置,如可讀(AccessRead)、可寫(AccessWrite)、可執行(AccessExecute)等。這些都可通過對DirectoryEntry的Properties屬性集合的賦值來實現。賦值可以通過兩種方式來完成: 

第一種是調用Properties集合的Add方法,如: 

復制代碼 代碼如下:
dir.Properties["AccessRead"].Add(true);

第二種是對第一個索引值賦值: 

復制代碼 代碼如下:
dir.Properties["AccessRead"][0] = true;

這兩種方法都是可行的。具體是要看你的喜好了。 
在進行賦值之前我們還是要確定要要賦值的目標吧:)這里我們使用DirectoryEntries類的Find方法,如: 
復制代碼 代碼如下:
DirectoryEntry de = rootfolder.Children.Find("Aspcn","IIsVirtualDir");

找到了,我們就可以賦值了。賦值時一定要好好看看啊,虛擬目錄的屬性值可以超多,一查一大堆。。:(太多了,飛刀我也不重復了,大家去微軟的站點上查:) 
比較常用的有:
AccessRead,AccessWrite,AccessExecute,AccessScript,DefaultDoc,EnableDefaultDoc,Path

刪除虛擬目錄

刪除虛擬目錄的方法也很簡單,就是找到你要刪除的虛擬目錄,然后調用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(); System.DirectoryServices.DirectoryEntries

IIs創建虛擬目錄

using System;using System.Collections.Generic;using System.Text;using System.DirectoryServices;namespace Install_IIS{  class IISManager  {    public IISManager()     {     }     /// <summary>    /// 創建虛擬目錄    /// </summary>    /// <param name="WebSite">服務器站點名稱</param>    /// <param name="VDirName">虛擬目錄名稱</param>    /// <param name="Path"></param>    /// <param name="RootDir"></param>    /// <param name="chkRead"></param>    /// <param name="chkWrite"></param>    /// <param name="chkExecute"></param>    /// <param name="chkScript"></param>    /// <param name="chkAuth"></param>    /// <param name="webSiteNum">1</param>    /// <param name="serverName">localhost</param>    /// <returns></returns>    public string CreateVDir(string WebSite,string VDirName, string Path, bool RootDir, bool chkRead,bool chkWrite, bool chkExecute, bool chkScript, bool chkAuth, int webSiteNum, string serverName)     {       string sRet=String.Empty;       System.DirectoryServices.DirectoryEntry IISSchema;       System.DirectoryServices.DirectoryEntry IISAdmin;       System.DirectoryServices.DirectoryEntry VDir;       bool IISUnderNT;      //       // 確定IIS版本      //       IISSchema = new System.DirectoryServices.DirectoryEntry("IIS://" + serverName + "/Schema/AppIsolated");       if(IISSchema.Properties["Syntax"].Value.ToString().ToUpper()=="BOOLEAN")         IISUnderNT=true;       else         IISUnderNT=false;       IISSchema.Dispose();      //       // Get the admin object       // 獲得管理權限      //       IISAdmin=new System.DirectoryServices.DirectoryEntry("IIS://" +serverName +"/W3SVC/" + webSiteNum + "/Root");       if (IISAdmin == null)        return "IIS 未正常安裝";      if (IISAdmin.Children == null)        return "IIS 可能未啟動";      //       // If we're not creating a root directory       // 如果我們不能創建一個根目錄      //       if (!RootDir)       {         //         // If the virtual directory already exists then delete it         // 如果虛擬目錄已經存在則刪除        //        foreach(System.DirectoryServices.DirectoryEntry v in IISAdmin.Children)         {           if (v.Name == VDirName)           {             // Delete the specified virtual directory if it already exists             try             {             IISAdmin.Invoke("Delete", new string [] { v.SchemaClassName, VDirName });             IISAdmin.CommitChanges();             }             catch(Exception ex)             {             sRet+=ex.Message;             }           }         }       }        //       // Create the virtual directory       // 創建一個虛擬目錄      //       if (!RootDir)       {         VDir = IISAdmin.Children.Add(VDirName, "IIsWebVirtualDir");       }       else       {         VDir = IISAdmin;       }      //       // Make it a web application       // 創建一個web應用      //       VDir.Properties["Path"][0] = Path;      //設置虛擬目錄指向的物理路徑      if (IISUnderNT)       {         VDir.Invoke("AppCreate", false);       }       else       {         VDir.Invoke("AppCreate", 1);       }       //       // Setup the VDir       // 設置虛擬目錄      //       VDir.Properties["AccessRead"][0] = chkRead; //設置讀取權限      VDir.Properties["AccessExecute"][0] = chkExecute; //設置執行權限      VDir.Properties["AccessWrite"][0] = chkWrite; //設置寫入權限      VDir.Properties["AccessScript"][0] = chkScript; //執行權限      VDir.Properties["DefaultDoc"][0] = "index.asp,Default.aspx";//設置默認文檔,多值情況下中間用逗號分割      VDir.Properties["AppFriendlyName"][0] = VDirName; //應用程序名稱      VDir.Properties["AuthFlags"][0] = 0;  //  設置目錄的安全性,0表示不允許匿名訪問,1為允許,3為基本身份驗證,7為windows繼承身份驗證      VDir.Properties["AuthNTLM"][0] = chkAuth;       VDir.Properties["EnableDefaultDoc"][0] = true;       VDir.Properties["EnableDirBrowsing"][0] = false;       //       // NT doesn't support this property       // NT格式不支持這特性      //       if (!IISUnderNT)       {         VDir.Properties["AspEnableParentPaths"][0] = true;       }      //       // Set the changes       // 設置改變      //       VDir.CommitChanges();      //下面的方法是得到所有屬性名稱的方法:      foreach (PropertyValueCollection pvc in VDir.Properties)      {        Console.WriteLine(pvc.PropertyName);      }      sRet+= "VRoot " +VDirName + " created!";       return sRet;     }     #region Properties     public string ServerName     {     get     {     return _serverName;     }     set     {     _serverName = value;     }     }     #endregion    public static string VirDirSchemaName = "IIsWebVirtualDir";    #region Private Members      private string _serverName;    #endregion   } }

測試用:

復制代碼 代碼如下:
MessageBox.Show(new IISManager().CreateVDir("localhost", "ietm", "c://myweb", false, true, false, false, true, false, 1, "localhost"));

這個我已投入項目中使用,可放心使用。

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品丝袜久久久久久不卡| 亚洲经典中文字幕| 久久久久一本一区二区青青蜜月| 久久夜精品香蕉| 国产男人精品视频| 国产精品一区二区三区久久| 日本国产欧美一区二区三区| 性日韩欧美在线视频| 久久久在线视频| 国产精品偷伦视频免费观看国产| 精品日韩美女的视频高清| 亚洲天堂网站在线观看视频| 亚洲欧美精品伊人久久| 久久久久久免费精品| 51久久精品夜色国产麻豆| 亚洲人成在线观看网站高清| 欧美激情精品久久久久久黑人| 欧美大胆在线视频| 国产区亚洲区欧美区| 最近中文字幕2019免费| 4k岛国日韩精品**专区| 成人免费在线视频网站| 高清欧美性猛交xxxx| 一道本无吗dⅴd在线播放一区| 亚洲国产精品va在线| 亚洲色图国产精品| 亚洲精品日韩在线| 国产精品久久久久av免费| 国产成人一区二区三区电影| 成人中文字幕+乱码+中文字幕| 麻豆一区二区在线观看| 国产69久久精品成人看| 国产精品一二三在线| 伊人av综合网| 亚洲福利小视频| 亚洲高清av在线| 亚洲xxxx妇黄裸体| 精品国产一区二区三区久久久狼| 久久久久久久影视| 亚洲欧洲在线免费| 91精品国产综合久久香蕉922| www.久久久久久.com| 亚洲精品98久久久久久中文字幕| 国产成人精品视频| 欧美激情亚洲视频| 正在播放国产一区| 91老司机精品视频| 中文字幕一区二区精品| 国产精品一区二区久久国产| 高清欧美性猛交xxxx| 国产精品成人一区二区| 国产成人精品综合久久久| 日韩欧美在线免费观看| 亚洲网站在线观看| 欧美孕妇与黑人孕交| 色播久久人人爽人人爽人人片视av| 国产精品爱久久久久久久| 久久久免费精品| 97国产在线观看| 欧美激情在线视频二区| 两个人的视频www国产精品| 91精品91久久久久久| 91国内免费在线视频| 91中文字幕一区| 久久久久久久久亚洲| 91在线视频精品| 久久精品成人一区二区三区| 久久精品亚洲一区| 91大神在线播放精品| 国产欧美精品在线| 一区二区三区视频免费在线观看| 亚洲精品98久久久久久中文字幕| 久久精品中文字幕| 欧美中文字幕在线观看| 欧美性xxxx在线播放| 2019亚洲男人天堂| 成人网在线观看| 欧美亚洲国产日韩2020| 91超碰caoporn97人人| 国产精品欧美日韩| 欧美国产日韩一区二区三区| 国产成人拍精品视频午夜网站| 色中色综合影院手机版在线观看| 国产精品igao视频| 日韩免费观看在线观看| 日韩美女毛茸茸| 亚洲天堂一区二区三区| 久久免费少妇高潮久久精品99| 久久久伊人欧美| 亚洲欧美日韩中文视频| 中日韩美女免费视频网站在线观看| 国产精品999| 深夜福利国产精品| 亚洲男人天堂视频| 欧美成人午夜影院| 国产91精品久久久久久| 日韩欧美在线观看视频| 91成人在线观看国产| 国产精品久久久久久网站| 久久精品成人欧美大片| 日韩在线观看免费网站| 亚洲丝袜一区在线| 91chinesevideo永久地址| 国产一级揄自揄精品视频| 亚洲奶大毛多的老太婆| 日本欧美在线视频| 亚洲精品国产成人| 亚洲成人黄色在线| 国产精品吹潮在线观看| 欧美高清一级大片| 国产日韩换脸av一区在线观看| 亚洲国产精品va在线观看黑人| 亚洲国语精品自产拍在线观看| 国产香蕉精品视频一区二区三区| 国产精品劲爆视频| 国产精品成人一区| 亚洲午夜av电影| 亚洲免费电影一区| 亚洲男子天堂网| 亚洲国产精品国自产拍av秋霞| 国产在线精品播放| 国产91精品黑色丝袜高跟鞋| 色综合久久精品亚洲国产| 色哟哟网站入口亚洲精品| 亚洲最新中文字幕| 久久久久久久久综合| 中文字幕精品久久| 国产亚洲精品va在线观看| 亚洲iv一区二区三区| 久久久久久国产免费| 欧美在线观看一区二区三区| 美女精品视频一区| 国产精品久久久久久久久久久不卡| 午夜美女久久久久爽久久| 精品久久久久久中文字幕一区奶水| 欧美日本亚洲视频| 久久精品99久久久香蕉| 国产91精品久久久久久| 国产精品久久久久久久久久三级| 亚洲色图av在线| 国产成人jvid在线播放| 色偷偷偷综合中文字幕;dd| 国自产精品手机在线观看视频| 国产日韩欧美在线视频观看| 国模视频一区二区三区| 日韩欧美成人免费视频| 九九热在线精品视频| 成人激情春色网| 国产91精品视频在线观看| 丝袜情趣国产精品| 欧美国产日韩一区二区在线观看| 欧美高清性猛交| 日韩国产欧美区| 亚洲精品黄网在线观看| 久操成人在线视频| 久久全国免费视频| 亚洲乱亚洲乱妇无码| 亚洲精品短视频| 久久亚洲精品一区二区| 久久视频在线免费观看| 国产一区二区丝袜高跟鞋图片| 97视频免费观看| 伊人久久男人天堂| 日韩欧美aaa|