2011-02-07 11 views
3

WMI(C#を使用)を使用してリモートIIS 7にすべてのWebサイトバインディングを照会する方法を示すサンプルコードを検索しようとしています。 これを達成するために必要なすべてのクラス/名前空間とクエリーの頭や尾を作ることはできません。 サンプルコードが入手できない場合は、適切な文書を参考にしてください。WMI - IIS 7 - すべてのWebサイトバインディングを取得する

おかげで

答えて

1

をあなたは外部のIISインスタンスに接続するServerManager.OpenRemote("serverName")機能を使用する必要があります。 (MSDNの記事hereを参照してください。)

をあなたはserverManager.Sitesコレクションを列挙する場合は、そのウェブサイト上でアクティブなバインディングを確認するために、各Siteオブジェクトからsite.Bindingsプロパティを取得することができます。

1

たくさんあなたはSystem.DirectoryServicesアセンブリを使用して、IISメタベースにアクセスすることによって、これを達成することができるはずです。

たとえば、これらのサイトに含まれるすべてのサイトとプロパティの設定を列挙できます。

は、プロジェクトにこの参照を追加します。

using System.DirectoryServices

// Assuming your Server Id is 1, and you are connecting to your local IIS. 
DirectoryEntry de = new DirectoryEntry(@"IIS://localhost/W3SVC/1/Root"); 
foreach (DirectoryEntry entry in de.Children) 
{ 
    foreach (PropertyValueCollection property in entry.Properties) 
    { 
     Console.WriteLine("Name: {0}, Value {1}",property.PropertyName, property.Value); 
    } 
} 
+2

注意しなければならないのは、IIS6メタベース互換性がサーバーにインストールされている場合のみです。あなたは常に.Dispose()あなたのCOMオブジェクト:) –

関連する問題