0

Windows Server 2008 で実行している IIS サービスを Windows 7 マシンからリセットしたいと考えています。

C#.Net コードを使用して IIS をリモートでリセットするにはどうすればよいですか?

Microsoft.Web.Administration を使用してみましたが、接続するリモート サーバーの詳細を受け入れません。この目的で使用できる他の A​​PI はありますか?

4

1 に答える 1

2

特定の Web サイト名がある場合は、WMI を使用してその Web サイトを停止および開始できます。全体として IIS である場合、IIS WMI プロバイダーにはこれを行うための何かがあると確信しています。ここでは WebAdministration を使用して IIS で Web サイトを管理していますが、MicrosoftIISV2 もあります。WmiExplorer の Google には、優れたものがいくつかあります。

        var connOptions = new ConnectionOptions();
        connOptions.Authentication = AuthenticationLevel.PacketPrivacy;
        // if you want to connect as someone other than logged in user
        //connOptions.Username = username;
        //connOptions.Password = password;

        var scope = new ManagementScope("\\localhost\WebAdministration", connOptions);

        WqlObjectQuery query = new WqlObjectQuery(`enter code here`string.Format("SELECT * FROM Site WHERE Name = '{0}'", "Default Web Site"));

        using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query))
        {
            foreach (ManagementObject site in searcher.Get())
            {
                ManagementBaseObject inParams = site.GetMethodParameters("Stop");
                site.InvokeMethod("Stop", inParams, null);

                ManagementBaseObject inParams2 = site.GetMethodParameters("Start");
                site.InvokeMethod("Start", inParams2, null);
            }
        }
于 2012-11-20T00:39:00.793 に答える