1

リモート マシンで IIS を停止してから作業を行い、作業が完了したら IIS サービスを再開する必要があります。C# コードを使用してこれを実行しようとしています。コードを使用してリモート マシンで IIS を起動することについて、同様の質問をいくつか見ました。しかし、私はそれから実用的な解決策を得ることができませんでした。開始操作と停止操作の実行方法に関するいくつかの明確な C# コードは、非常に役立ちます。

4

2 に答える 2

5

名前Microsoft.Web.Administration空間には、IIS を管理するために必要なものがあります。http://msdn.microsoft.com/en-us/library/microsoft.web.administration%28VS.90%29.aspxで確認してください。

ただし、サービスを停止して開始するだけの場合は、Service.Controller

 ServiceController service = new ServiceController(serviceName);
 TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
 service.Start();
 service.WaitForStatus(ServiceControllerStatus.Running, timeout);

クラスページには、Service.Controller必要なすべての情報が含まれている必要があります。http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspxで見つけてください。

サービスを開始するために使用できる完全な例を次に示します。

public static void StartService(string serviceName, int timeoutMilliseconds)
{
  ServiceController service = new ServiceController(serviceName);
  try
  {
    TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);

    service.Start();
    service.WaitForStatus(ServiceControllerStatus.Running, timeout);
  }
  catch
  {
    // ...
  }
}

詳細なドキュメントについては、上記のリンクを確認してください。

次のようにリモートサーバーに接続できます。

ServiceController svc =  new ServiceController("Service", "COMPUTERNAME");

リモート サーバーで別のアクセス許可のセットが必要な場合は、さらに多くの作業が必要になります。この質問「Starting remote Windows services with ServiceController and impersonation 」を参照してください。

于 2013-07-24T10:49:39.877 に答える