2016-10-25 5 views
0

machine1にはいくつかのWindowsサービスがあり、Machine2上ではWebアプリケーションが稼働しています。 Webアプリケーションのプロセスでmachine1のサービスをC#コードで再起動する必要があります。これを達成する最良の方法は何ですか?Service Controllerを使用してWebアプリケーションからリモートサーバー上のWindowsサービスを再起動しますか?

+0

を、あなたは明らかに、簡単な方法で問題が発生したしましたか? – nvoigt

+0

リモートサービスとやりとりするために必要な特権を持つWebアプリケーションを実行することは悪い考えです。 –

+0

@nogigtこれらのサービスを再起動するためのインターフェイスをWebアプリケーションに持たせることです。あなたが話している明白な方法については不明ですか? –

答えて

0

マシン1に別のサービスを追加して、起動時に同じマシン上でサービスを再起動することができます。その後、Webアプリケーションから呼び出します。詳細はhereをご覧ください。

0

@マフディーは良いアプローチを提供しました。私は同じことをお勧めします。

必要Serviceステータスが、それはすぐにそのServiceを再起動します見つけStopped場合であれば継続的にマシン2と小切手上で実行されます別のWindowsサービスを作成します。

あなたは、このようなサービス再起動するServiceControllerを使用することができます。

ServiceController service = new ServiceController(serviceName); 
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds); //Time out to make sure if service has started correctly 
service.Start(); 
service.WaitForStatus(ServiceControllerStatus.Running, timeout); 
関連する問題