我不确定我的问题是否完全有道理,所以让我试着详细说明一下。目前我尝试通过创建一个新的 DirectoryEntry 来检查 IIS 中是否已经存在一个网站:
DirectoryEntry IISWebsites = new DirectoryEntry(MetaBasePath);
MetaBasePath 之前定义为:
private const string MetaBasePath = "IIS://Localhost/W3SVC";
我在 foreach 循环中检查 IISWebsites 子项,只是想知道这是否会按 Id 顺序遍历子项?根据我的阅读,这实际上存储在 DirectoryEntry 'Name' 属性中。
我问的原因是,如果找不到用户在我的网络设置项目中输入的网站名称,那么我想返回最高的 id,这样我就可以向它添加 1 并使用用户提供的名称创建一个新网站.
用我的 IIS 对此进行了测试后,它似乎确实按此顺序返回它,但我需要确定。
编辑
我在 Microsoft 支持 ( http://support.microsoft.com/kb/240941 ) 上找到了以下内容:
请注意,在元数据库中搜索配置信息时,会从底部或子键到顶部或节点进行枚举。
这似乎暗示它确实按照我的想法做,但它是否在站点 ID 上工作还不是 100% 清楚,因为我不确定这与子项有什么关系。