2017-05-29 6 views
0

サービスホストとして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てきたので、;-)

すべてのヘルプは大歓迎です...

答えて

0

私はこのスタートは後のサービスに起こっていましたWindows Creatorのエディションの更新プログラムがインストールされています。基本的には、コンピュータ全体が遅くなりました。これが私の問題だと思います。 Windowsサービスの1つでもタイムアウトの問題がありました。

私がオンラインで学んだのは、サービスのコンストラクターが高速である必要がありますが、OnStartはSCMに多くの余裕があるということです。私のサービスにはC#ラッパーがあり、コンストラクターで呼び出されたInitializeComponent()が含まれていました。私はその呼び出しをOnStartに移し、問題はなくなった。

+0

申し訳ありません。より徹底的なテストの後、私はOnStartへの初期化の移動が他の問題を引き起こすことを発見しました。それはコンストラクタにとどまるべきです。 –

+0

コメントが間違っていると思われる場合は、コメントを残してください。 – Alex

関連する問題