サービスホストとしてTopshelfを使用して、vb.NETでプログラミングされたWindowsサービスがあります。 しばらくしてからサービスが開始されません。イベントログでは、SCMはエラー7000と7009を書き込みます(サービスは適時に応答しませんでした)。私はこれが共通の問題だと知っていますが、私は考えています。 サービスはWMIのみに依存し、時間のかかる操作はありません。 私はこの質問(Error 1053: the service did not respond to the start or control request in a timely fashion)を読んだが、答えはどれも私にとっては役に立たなかった。Windows Serviceタイムアウトエラー7000 7009
私が試した:
- セットtopshelfの開始タイムアウトを。
- "OnStart"メソッドの最初の行に追加の時間をリクエストしてください。
- SCMに追加の時間を要求する定期的なタイマーを設定します。
- TopShelfを削除し、Visual Studioサービステンプレートを使用してサービスを作成します。
- 初期化コードと "OnStart"コードを新しいスレッドに移動してすぐに戻ります。
- RELEASEモードでビルドします。
- app.configファイル(アプリケーションごと)にGeneratePublisherEvidence = falseを設定します。
- インターネット設定(マシンごと)で「発行者の証明書失効を確認する」チェックボックスをオフにします。
- すべての代替ストリームを削除しました(一部のDLLがウェブとしてマークされ、ブロックされた場合)。
- 「デバッグコード」が削除されました。
- ウィンドウの一般サービスのタイムアウトが120000msに増加しました。また
:
- サービスがどのような方法でユーザーのデスクトップと通信しようとしません。
- UACが無効です。
- サービスはローカルシステムアカウントで実行されます。これは、2年以上の生産にされている
- :
私はサービス自体のコードがあるため、問題はないと信じています。
- 通常、サービスは正常に開始されます。
- イベントログに例外は記録されていません。
- サービスの「オンエラー」オプションが呼び出されません(サービスが実際には失敗しないため、SCMに応答しないため)
- 私はそれについてほとんどコメントしましたこのエラー!私はアイデアから完全だし、私は15日間以上これでstruglingてきたので、;-)
すべてのヘルプは大歓迎です...
申し訳ありません。より徹底的なテストの後、私はOnStartへの初期化の移動が他の問題を引き起こすことを発見しました。それはコンストラクタにとどまるべきです。 –
コメントが間違っていると思われる場合は、コメントを残してください。 – Alex