Windowsサービスに代わるものがあるかどうか教えてください。私の質問の理由は、まずWindowsサービスをインストールする必要があるため、Windowsサービスをテストするのが難しいということです。C#Windowsサービス代替
ありがとうございます。
Windowsサービスに代わるものがあるかどうか教えてください。私の質問の理由は、まずWindowsサービスをインストールする必要があるため、Windowsサービスをテストするのが難しいということです。C#Windowsサービス代替
ありがとうございます。
これは、サービス方法からにを呼び出す必要がないように、コードを適切に整理してファクタリングするだけで済みます。 IEの場合、サービスから呼び出すことも、メインメソッドで呼び出すことも、NUnitなどで呼び出すこともできます。
これ以外の方法でも、メインメソッドを実行し、Windowsスケジュールタスクの一部としてプログラムを実行します。
残念ながら、それは簡単ではありません。インストールの問題、ロギング、アクセス違反など、テストが難しいWindowsサービスに固有の実行時エラーが発生します。プロセスにデバッガをアタッチすることはできますが、それでもエラーを検出するのは望ましい方法ではありません。 –
代わりにWindows Azure Workerロールを使用することを検討できます。クラウドでもホストされている環境のような実行中のサービスが得られます。
Windowsサービスに代わる最良の選択肢は、Windows Server AppFabricです。使用方法については、blog entryです。
しかし、必ずしもテストするのが簡単ではないと私は思います。テストの最善の策は、コンソールからWindowsサービスを実行することです。これは、サービスオブジェクトをインスタンス化し、それを開始するメソッドを公開するだけで実行できます。
Topshelf projectをご覧ください。コンソールアプリケーションのシンプルさですが、Windowsサービスとしてインストールできます。
あなたの声明:「私の質問の理由は、最初にインストールする必要があるため、Windowsサービスをテストするのが難しいということです。」と、まずウィンドウサービスをテストすることができますフォーム内のボタンのクリックによるコード。フォームのコードに満足したら、そのコードをコピーしてService.csファイルに貼り付けることができます。 –
私はこれにOPに同意する必要があります。サービスは、特に本番環境ではトラブルシューティングするのが難しいです。しかし、はい、その問題を緩和する方法があります。あなたのコードをコンソール/勝利フォームとして最初に実行することです。インストールの問題と特権については、最も良い方法はロギング&イベントビューアです。 –