C#:在IIS中建立一個WEB網站

來源:互聯網
上載者:User

DirectoryEntry 類

    DirectoryEntry 類封裝 Active Directory 階層中的節點或對象。
    命名空間:System.DirectoryServices
    程式集:System.DirectoryServices(在 system.directoryservices.dll 中)

    與 DirectoryEntry 組件關聯的類可以與任何 Active Directory 服務提供者一起使用。當前的一些提供者包括 Internet 資訊服務 (IIS)、輕量目錄訪問協議 (LDAP)、Novell NetWare 目錄服務 (NDS) 和 WinNT。

DirectoryEntry.Invoke 方法

    對本機 Active Directory 對象調用方法。

public Object Invoke (
    string methodName,
    params Object[] args
)

 

參數
methodName

要調用的方法名。

args

物件類型的數組,它包含要調用的方法的參數。

傳回值

被調用的方法的傳回值。
    

        public int CreateWebSite(string webSiteName, string pathToRoot)
        {
            return CreateWebSite(webSiteName, pathToRoot, false);
        }
        public int CreateWebSite(string webSiteName, string pathToRoot, bool createDir)
        {
            DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC");
            // 為新WEB網站尋找一個未使用的ID
            int siteID = 1;
            foreach(DirectoryEntry e in root.Children)
            {
                if(e.SchemaClassName == "IIsWebServer")
                {
                    int ID = Convert.ToInt32(e.Name);
                    if(ID >= siteID){siteID = ID+1;}
                }
            }
            // 建立WEB網站
            DirectoryEntry site = (DirectoryEntry)root.Invoke("Create", "IIsWebServer", siteID);
            site.Invoke("Put", "ServerComment", webSiteName);
            site.Invoke("Put", "KeyType", "IIsWebServer");
            site.Invoke("Put", "ServerBindings", ":80:");
            site.Invoke("Put", "ServerState", 2);
            site.Invoke("Put", "FrontPageWeb", 1);
            site.Invoke("Put", "DefaultDoc", "Default.aspx");
            site.Invoke("Put", "SecureBindings", ":443:");
            site.Invoke("Put", "ServerAutoStart", 1);
            site.Invoke("Put", "ServerSize", 1);
            site.Invoke("SetInfo");
            // 建立應用程式虛擬目錄
            DirectoryEntry siteVDir = site.Children.Add("Root", "IISWebVirtualDir");
            siteVDir.Properties["AppIsolated"][0] = 2;
            siteVDir.Properties["Path"][0] = pathToRoot;
            siteVDir.Properties["AccessFlags"][0] = 513;
            siteVDir.Properties["FrontPageWeb"][0] = 1;
            siteVDir.Properties["AppRoot"][0] = "LM/W3SVC/"+siteID+"/Root";
            siteVDir.Properties["AppFriendlyName"][0] = "Root";
            siteVDir.CommitChanges();
            site.CommitChanges();
            return siteID;
        }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.