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