3

IIS 6.0 SMTP サーバーをプログラムで再起動する方法を知りたいです。

私がセットアップした SMTP サーバーは時々クラッシュします。数日は気がつきませんが、どうしようもありません。

SMTP サーバーが実行されているかどうかをテストするために、30 分ごとにスケジュールされたタスクを設定したいと考えています。

SMTP サーバーが稼働しているかどうかを確認する方法を見つけましたが、クラッシュした場合にプロセスを再起動する方法がわかりません。

その方法はここに投稿されています:テスト SMTP サーバーは C# 経由で実行されています

どんな助けでも素晴らしいでしょう!

ありがとうございました。

実行中かどうかを確認するために C# でコンソール アプリケーションを開発しているので、コード例も素晴らしいでしょう。

4

3 に答える 3

4

ServiceControllerには start メソッドと stop メソッドがあるため、役に立ちます。msdn ページのサンプルを見てください。

もう 1 つのサンプルはServiceControllerStatus Enumerationから取得したものです (サービス名を置き換えるだけです)。

ServiceController sc = new ServiceController("Telnet");
Console.WriteLine("The Telnet service status is currently set to {0}", 
                  sc.Status.ToString());

if  ((sc.Status.Equals(ServiceControllerStatus.Stopped)) ||
     (sc.Status.Equals(ServiceControllerStatus.StopPending)))
{
   // Start the service if the current status is stopped.

   Console.WriteLine("Starting the Telnet service...");
   sc.Start();
}  
else
{
   // Stop the service if its status is not set to "Stopped".

   Console.WriteLine("Stopping the Telnet service...");
   sc.Stop();
}  

// Refresh and display the current service status.
sc.Refresh();
Console.WriteLine("The Telnet service status is now set to {0}.", 
                   sc.Status.ToString());
于 2012-07-16T21:49:04.113 に答える