繁体   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