1

サーバーの IIS サイトとアプリケーションを列挙する内部ツールがあります。次のようなコードを使用します。

using (var serverManager = ServerManager.OpenRemote(serverName))
{
    var site = serverManager.Sites[siteName]; // This is slow

    // And just starting to enumerate Applications is incredibly slow
    foreach (var application in site.Applications)
    {
        // ...
    }
}

私が抱えている問題は、Sitesコレクションにアクセスすると、VPN 経由でサーバーに接続するときに応答時間が非常に遅いことです。サイトのアプリケーションへのアクセスはさらに遅くなります。私の理論では、速度が遅いのは、サイトのメタデータのセット全体がネットワーク経由で送信される可能性が高いという事実によるものです。ただし、サイト データのサブセットのみが必要です。

私の理論では、コードを WMI クエリを使用するように切り替えれば、このアプリケーションに関連する特定のフィールド ( などSELECT Name from Site) のみをクエリできるようになります。Site残念ながら、WMI CIM Studio で WMI オブジェクトを探索しようとすると、ローカルの IIS 7.5 の場合でも、やオブジェクトなど、存在するはずのオブジェクトがまったくありませんでしたApplicationroot\WebAdministration名前空間に使用しています。

この WMI は IIS 7.5 で機能しますか? 「IIS 6 WMI 互換性」がオンになっていることを確認しました。IIS インスタンスのメタデータを照会する別の軽量な方法はありますか?

4

1 に答える 1