web-dev-qa-db-ja.com

Windowsサービスが再起動後に自動的に起動しないのですか?

.NETで記述されたWindowsサービスがいくつかあります。サービスmmc内で手動で正常に起動しますが、自動に設定されているにもかかわらず、マシンの電源を投入(または再起動)しても起動しません。

更新イベントログに、「xyzが開始されました」と表示される代わりに、他のすべてのサービスが開始されているのと同じように、「xyzサービスが停止状態になりました」と表示されます。また、「slsvcサービスからのトランザクション応答を待機中にタイムアウト(30000ミリ秒)に達しました。」という別のエラーが発生しました。

それらを手動で開始すると、期待どおりにイベントログに通常のエントリが表示され、再起動を強制する次のWindows Updateパッチとすべてのサービスが再びオフになるまで、すべて正常です。

何か案は?私はそれらを遅延開始に設定してみましたが、明らかな違いはありません。

10
James Crowley

その修正があります。参照: http://support.Microsoft.com/kb/922918

問題は、サービスがLDAPまたは別のリモートアクセスを必要とする可能性があり、このために遅延が発生していることです。これは特に、サーバーの起動時に発生する可能性があります。遅延を延長することで、サービスを確実に開始できます。

もちろん、このサービスの開始に時間がかかる理由をトラブルシューティングすることをお勧めします。ご使用の環境は未使用ですか?開始が遅れているサービスによってポーリングされているサービスでパフォーマンスの問題がありますか?

3
David Biot

「Windowsサービスがいくつかあります」とはどういう意味ですか?それはあなたの組織内の誰かによって内部的に作成されていることを私に示唆していますか?もしそうなら、ここで他の誰よりもそれらをデバッグするより良い位置にいます-これらのサービスはWindowsコンポーネントにどのような依存関係を持ち、プログラマーはこれらのサービスの可用性のテストを検討し、サービスの開始時にそれらがオンラインになるのを待っていますか? ?

これらのサービスをソフトウェアライセンスサービスの依存関係として設定することを検討しましたか(これはslsvcとは何ですか)。

from http://support.Microsoft.com/kb/193888

新しい依存関係を作成するには、遅延するサービスを表すサブキーを選択し、[編集]をクリックして、[値の追加]をクリックします。 REG_MULTI_SZのデータ型で新しい値の名前 "DependOnService"(引用符は除く)を作成し、[OK]をクリックします。 [データ]ダイアログボックスが表示されたら、このサービスの前に開始するサービスの名前を1行に1つずつ入力し、[OK]をクリックします。

[データ]ダイアログボックスに入力するサービスの名前は、Servicesキーの下のレジストリに表示されるサービスの正確な名前です。

コンピューターが起動すると、このエントリを使用して、依存サービスを開始する前に、この値にリストされているサービスが開始されていることを確認します。

1
Rob Moir

これで試してください:

次のコマンドを実行して、環境に適したトリガーイベントを定義します。この例では、コマンドはホストにIPアドレスが付与されているかどうかを判別し、サービスを開始または停止します。

sc triggerinfo w32time start/networkon stop/networkoff

ここで、w32Timeはサービス名です

またはこれを試してください

https://support.Microsoft.com/en-us/kb/922918