FileSystemWatcher を使用し、バックグラウンドで実行される Windows サービスを構築しています。
デバッグするたびにサービスのアンインストールとインストールを繰り返したくないので、サービスに移行する前に通常のプログラムでほとんどの開発を行いたいと考えています。しかし、私はこれにまったく慣れていません。実行すると、ブロックを通過して終了します。
プログラムを実行し続けるにはどうすればよいでしょうか?
FileSystemWatcher を使用し、バックグラウンドで実行される Windows サービスを構築しています。
デバッグするたびにサービスのアンインストールとインストールを繰り返したくないので、サービスに移行する前に通常のプログラムでほとんどの開発を行いたいと考えています。しかし、私はこれにまったく慣れていません。実行すると、ブロックを通過して終了します。
プログラムを実行し続けるにはどうすればよいでしょうか?
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);
}
}
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 サービス アプリを作成したりできるかもしれません。
少し前に、Windows サービスの構築というタイトルの 7 回シリーズを書きました。サービスの構築の複雑さをすべてカバーし、デバッグしやすくし、自己インストールできるようにします。
私が探していた基本的な機能セットは次のとおりです。
最終的な結果は、上記のすべてを備えた実用的なサービスを 1 つの手順で作成する Visual Studio プロジェクト テンプレートです。時間の節約になりました。
プロジェクト テンプレートへのリンクとインストール手順については、「Windows サービスの構築 – パート 7: 仕上げ」を参照してください。
while (true)
{
// Execute your program's functionality here.
}