簡體   English   中英

使用Web安裝項目,如何在IIS中而不在默認站點中創建新網站?

[英]Using a Web Setup Project how can I create a new website in IIS NOT in the Default Site?

我已經閱讀了許多有關如何使用Web安裝項目和自定義操作等的文章。但是,似乎都沒有一個文章解釋如何在IIS中創建不在“默認站點”下的新網站。

我目前有以下編碼,已從其中一篇文章改編而成:

private const string MetaBasePath = "IIS://Localhost/W3SVC";

在Install方法期間將調用以下方法:

private void CreateWebsite()
{
    DirectoryEntry IISWebSites = new DirectoryEntry(MetaBasePath);
    DirectoryEntries sites = IISWebSites.Children;
    DirectoryEntry TestAppWebSite = sites.Add("TestWebApp", (IISWebSites.SchemaClassName.Replace("Service", "Server")));
    TestAppWebSite.Properties["ServerComment"][0] = "Testing";
    TestAppWebSite.CommitChanges();
}

這似乎創建了一個網站,但在“默認網站”下。 我很確定'MetaBasePath'的定義正確,因為這也用在另一種方法中,以檢查網站當前是否存在。 此方法遍歷“ MetaBasePath”的子級,並檢查每個子級的屬性。 我已經遍歷了這段代碼,這正在拉回我希望看到的網站,所以我知道它從那條路徑中獲取了正確的信息。

我想念什么?

更新

如果我使用站點ID而不是名稱,則似乎可以在“默認站點”下創建一個新站點。

按照我對IIS 6的更新,您可以使用站點ID來完成此操作。 為此,我獲得了站點ID,對它們進行了排序,然后遍歷它們。 然后我加1給我下一個1。

對於IIS 7,它要容易得多。 只需獲取SiteCollection並添加。 見下文:

 private ServerManager mgr = new ServerManager();     

 SiteCollection sites = mgr.Sites;
 int port;
 Int32.TryParse(targetPort, out port);
 string DirectoryPath = targetDirectory.Substring(0, targetDirectory.LastIndexOf("\\"));
 site = sites.Add(targetSite, DirectoryPath, port);
 mgr.CommitChanges();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM