0

FileSystemWatcher を使用し、バックグラウンドで実行される Windows サービスを構築しています。

デバッグするたびにサービスのアンインストールとインストールを繰り返したくないので、サービスに移行する前に通常のプログラムでほとんどの開発を行いたいと考えています。しかし、私はこれにまったく慣れていません。実行すると、ブロックを通過して終了します。

プログラムを実行し続けるにはどうすればよいでしょうか?

4

4 に答える 4

6

http://einaregilsson.com/run-windows-service-as-a-console-program/

以前にこれを使用して、インタラクティブなユーザー環境で実行されているかどうかに基づいて、サービスをコンソール アプリケーションとしてデバッグしました。

public partial class DemoService : ServiceBase
{
    static void Main(string[] args)
    {
        DemoService service = new DemoService();

        if (Environment.UserInteractive)
        {
            service.OnStart(args);
            Console.WriteLine("Press any key to stop program");
            Console.Read();
            service.OnStop();
        }
        else
        {
            ServiceBase.Run(service);
        }
    }
于 2012-05-21T16:13:50.100 に答える
0

MSDN @ http://msdn.microsoft.com/en-us/library/7a50syb3(v=vs.80).aspx?ppud=4のドキュメントを次に示します。以前に試したことがありますが、.NET Framework 3.x で動作します。現時点では、説明的なメモが見つかりませんでした。

コンソール出力などのデバッグ目的でプラグマ #If DEBUG を使用します。もう 1 つは、Debug オブジェクトを使用することです。

これで困ったら言ってください。MSDN の手順がまだ機能するかどうかを確認するためだけに、メモを見つけたり、自分で Windows サービス アプリを作成したりできるかもしれません。

于 2012-05-21T17:38:47.270 に答える
0

少し前に、Windows サービスの構築というタイトルの 7 回シリーズを書きました。サービスの構築の複雑さをすべてカバーし、デバッグしやすくし、自己インストールできるようにします。

私が探していた基本的な機能セットは次のとおりです。

  • コンソールからも利用できるサービスの構築
  • サービスの起動/シャットダウンおよびその他のアクティビティの適切なイベント ログ
  • コマンドライン引数を使用して複数のインスタンスを許可する
  • サービスとイベント ログの自己インストール
  • サービスの例外とエラーの適切なイベント ログ
  • 起動、シャットダウン、および再起動オプションの制御
  • カスタム サービス コマンド、電源、およびセッション イベントの処理
  • サービスのセキュリティとアクセス制御のカスタマイズ

最終的な結果は、上記のすべてを備えた実用的なサービスを 1 つの手順で作成する Visual Studio プロジェクト テンプレートです。時間の節約になりました。

プロジェクト テンプレートへのリンクとインストール手順については、「Windows サービスの構築 – パート 7: 仕上げ」を参照してください。

于 2012-05-21T16:54:30.597 に答える
0
while (true)
{
  // Execute your program's functionality here.
}
于 2012-05-21T16:13:14.600 に答える