私の質問が一見完全に理にかなっているのかどうかわからないので、詳しく説明してみましょう。現時点では、新しい DirectoryEntry を作成して、IIS に Web サイトが既に存在するかどうかを確認しようとしています。
DirectoryEntry IISWebsites = new DirectoryEntry(MetaBasePath);
MetaBasePath は以前に次のように定義されています。
private const string MetaBasePath = "IIS://Localhost/W3SVC";
foreach ループで IISWebsites の子をチェックしましたが、これが子を Id 順に実行するかどうか疑問に思いました。私が読んだことから、これは実際には DirectoryEntry 'Name' プロパティに格納されています。
私が尋ねる理由は、Web セットアップ プロジェクトでユーザーが入力した Web サイト名が見つからない場合、最高の ID を返したいので、それに 1 を追加して、ユーザーが指定した名前で新しい Web サイトを作成できるようにするためです。 .
IIS でこれをテストしたところ、この順序で返されるようですが、確認する必要があります。
編集
Microsoft サポート ( http://support.microsoft.com/kb/240941 )で次の情報を見つけました。
構成情報を求めてメタベースを検索する場合は、下位 (サブキー) から上位 (ノード) に列挙されることに注意してください。
これは、私が考えていることを暗示しているようですが、これがサブキーとどのように関係しているかわからないため、サイト ID で機能するかどうかは 100% 明らかではありません。