我已经阅读了很多关于如何使用 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 而不是名称,我似乎能够创建一个不在“默认站点”下的新站点。