2009-06-10 7 views
1

WCFサービスをホストしている.netで書かれたWindowsサービスがあります。私の質問は、監視することが可能であり、任意の障害でサービスを再開する、私は私のサービスを任意の障害で自動的に再起動したい。
ありがとうございました障害発生時にWindowsサービスを再起動

+0

私たちは、コード、ウィンドウサービスでそれを行うことはできますか? – Sumeet

+0

はい@スメット、できます。あなたのサービスはフォールト状態にあるので、それを行うための別のサービスが必要です。偉大なクラスのServiceController(http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx)は、あなたにそれを手助けすることができます –

答えて

5

サービス/プロパティ/最初の失敗:サービスを再起動します/ 2番目の失敗:サービスを再起動します/後続の失敗:サービスを再起動します。

する必要があります。

+0

+1私たちは私たちのサービスのために同じことをしました –

+1

私は方法がありますか?サービスのコード内でこの設定を行うことができます。クライアント側でサービスを展開した後、私は彼が手動で上記の設定でそれを設定することを望んでいません。 – Sumeet

2

OSのサービスマネージャにアクセスし、サービスを右クリックしてプロパティを選択します。そこには、クラッシュ時の動作を定義できるリカバリタブがあります。

-1

このコアサービスを監視するウォッチャーサービスのような別のサービスを作成すると、&は停止時に再起動します。ただし、ウォッチャーサービスが停止している場合は何もできません。

0

あなたのサービスのデザインについて考えるべきだと思います。これはwcfプロセスのホストでなければなりません。

  • メインスレッド(唯一のV致命的なエラーで停止)

  • exceptionHandlerのスレッド(ハンドル「期待」の例外とロギングとWCFHostスレッド瀕死の世話をするん)

  • :あなたは3つのスレッドが作ることができます
  • WCFHostスレッドが(WCFサービスをホストし、それがexceptionHandlerのは、今、このの世話をすることができます好きな限り頻繁に死ぬことができる。)

1

単一ウィンドウサービス内に複数のWCFサービスが存在する可能性があります。 個々のWCFサービスのServiceHostクラスのFaultedイベントを処理して再初期化できます。

関連する問題