![](/img/trans.png)
[英]How to create new website in IIS using Web Setup Project in Visual Studio 2008 SP1
[英]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.