2012-04-05 14 views
2

本当にシンプルなWindowsサービスに問題があります。私はWalkthrough: Creating a Windows Service Application in the Component Designerで説明したようなサービスを作成しました。WindowsサービスがOnStart()を実行しません。

は私が持っている:

  • C言語で簡単なファイルを作成する必要がありますサービス:\ mylogs
  • のServiceInstaller(serviceprocessinstallerがLocalSystemとして実行)サービスをインストールするには
  • セットアッププロジェクト

net start/stop <servicename>でサービスを開始および停止できます。しかし、たとえ私がサービスのコンストラクターでアクションを実行しても、何も起こりません。

localadminとしてサービスをインストール、開始、停止します。

+0

あなたのコードを追加してください – BugFinder

+1

例外ログ –

答えて

1

サービスの初期化コードは、コンストラクタではなくOnStartイベントハンドラに入れなければなりません。サービスのクリーンアップとシャットダウンコードは、OnStopイベントに入れなければなりません。

開始イベントで本当にすべきことは、サービスがアクティブで実際の処理を行っている限り実行されるワーカースレッドを起動することだけです。 BackgroundWorkerコンポーネントを使用してこれを単純化することができます。サービスが停止したら、必要なクリーンアップを行い、バックグラウンドスレッドを終了します。

OnStartイベントハンドラとOnStopイベントハンドラのコードは、実行に1秒〜2時間かかることはありません。Windowsサービスマネージャは、サービスが正常に開始または停止したかどうかを報告するのを待機しています。あなたのサービスはすぐにService Control Managerにフィードバックを与えません。

+0

のためにイベントログを確認できますか?最後に、間違ったインストーラファイルで作業していました。 VS2010は、「再構築ソリューション」を選択するときにセットアッププロジェクトを構築しませんでした。だから、それは機能のないバージョンでした。私の上の恥:| – csteinmueller

+0

ああ。これらのことが起こります。少なくともあなたは問題を解決しました!私は何年も前にBorland C++ Builderでサービスを書く最初の試みを覚えています。良くない。 –

関連する問題