0

サーバー Foo の IIS 6.0 でページを実行しています。リモート サーバー Baz 上の IIS 6.0 で実行されている他のサイトもいくつかあります。ASP.NET で Foo を使用して Baz に ping を実行し、その上で実行されているサイトのリストを取得したいと考えています。これどうやってするの?

VB の代わりに C# を除いて、おそらくthisのようです。

これは、Microsoft.Web.Administration.dll を使用することは実際にはオプションではないことを示しています。これは、配布可能ではなく、IIS 7 でのみ使用できるためです。

4

2 に答える 2

4

Microsoft.Web.Administration を使用して実行中の Web サイトのリストを取得するためのコード スニペットを次に示します。この DLL は次の場所にあります: c:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll

class Program
    {
        static void Main(string[] args)
        {
            string serverName = "localhost";
            using (Microsoft.Web.Administration.ServerManager sm = Microsoft.Web.Administration.ServerManager.OpenRemote(serverName))
            {
                int counter = 1;
                foreach (var site in sm.Sites)
                {
                    Console.Write(String.Format(CultureInfo.InvariantCulture, "Site number {0} : {1}{2}", counter.ToString(), site.Name, Environment.NewLine));
                    counter++;
                }
            }
            Console.ReadLine();
        }
    }

「locahost」をリモート サーバー名に置き換えます。

これがIIS 6で機能することを願っています(IIS 7.5でのみ試しました;-))

于 2012-09-12T21:43:55.013 に答える
1

私はあなたがこれを達成できると信じていますSystem.DirectoryServices

        string path = "IIS://{yourservername}/W3SVC";

        using (DirectoryEntry w3svc = new DirectoryEntry(path))
        {
            foreach (DirectoryEntry entry in w3svc.Children)
            {
                if (entry.SchemaClassName == "IIsWebServer")
                {
                    string websiteName = (string)entry.Properties["ServerComment"].Value;
                }
            }
        }

Baz でリモート IIS 管理が有効になっていることを確認してください

于 2012-09-19T07:31:09.647 に答える