web-dev-qa-db-ja.com

サービスは、開始または制御要求にタイムリーに応答しませんでした

検索しましたが、適切な答えが見つからなかったので、独自の質問を作成します。いくつかのWindows2003 SP2サーバーがあり、それぞれがローカルマシンとWindows共有の両方から起動された.NETサービスを実行しています。しかし、すでに2回目にエラーが発生します:エラー1053:サービスが開始要求または制御要求にタイムリーに応答しませんでしたある特定のサーバーでサービスを再起動しようとすると、2回目は正常に機能します。実行可能ファイルとの共有が利用可能で、通常どおり開き、適切な権限があります。したがって、両方のサーバーですべてが同じように見えますが、起動するすべてのサービスにそのエラーが発生します。そのサーバーを再起動すると、数日または1週間は問題なく動作し、その後再び起動します。

誰かがそれが何であるかについての提案がありますか?

2
elgato

誰かがそれが何であるかについての提案がありますか?

聞きたいことではありませんが、ほとんど何でもかまいません。現時点では、サービスの起動またはシャットダウンに時間がかかりすぎることがあります。

.Netサービスを開発した人に戻って、問題の診断に役立つかどうかを確認する必要があります。

ただし、その前に、再起動を使用する代わりに、2つの異なるアクションとしてサービスを停止および開始することをお勧めします(それらの間に短い遅延があります)。これは、問題がサービスのシャットダウン時なのか、バックアップの開始時なのかを判断するのに役立つ場合があります。また、開始と停止の成功にかかる時間を判断できると便利な場合もあります。

また、イベントログをチェックして、他の情報が記録されているかどうかを確認する必要があります。

サービスが開始されると、最初の起動フェーズは特定の時間(通常は30秒)以内に完了することになっています。したがって、サービスは通常、このセクションのコード量を最小限に抑えようとし、残りの作業を実行するためにバックグラウンドスレッドを開始します。

同様に、サービスを停止すると、特定の時間(通常は20秒)以内にそのプロセスが完了することになっています。つまり、長時間実行される操作は、操作が完了するまで待つのではなく、サービスがシャットダウンされている場合にキャンセルできるように作成する必要があります。

起動またはシャットダウンの合計期間が制限を超える原因となるものはすべて、表示されているエラーの原因になります。

エラーの原因となる可能性のあるいくつかの例を示します。起動時に、サービスがコンピューター/サーバー名のDNSルックアップを実行しているとします。通常、これには数ミリ秒かかりますが、サーバーでDNSが正しく構成されていない場合、完了するまでに15秒以上かかる可能性があります。これは、起動に制限を超える合計時間を要する可能性があります。 2回目の試行では、DNSエントリがキャッシュされている可能性があるため、適切な制限時間内に機能します。

もう1つの可能性は、サービスがスリープ状態になったデバイスまたはリソースに依存していて、ウェイクアップにかかる時間が制限を超えていることです。 2回目にサービスを試すと、デバイスはすでに起動しており、タイムリーに応答します。

.Netサービスが広く使用されている場合は、幸運にもインターネット上の他の誰かが同様の問題を抱えており、解決策を見つけていることに気付くかもしれません。ただし、実際の原因は、起動時とシャットダウン時にサービスが実際に実行していることによって大きく異なります。そのため、開発者と話し合う方がよいでしょう。

1
sgmoore

Microsoftから利用可能なホットフィックスがあります

http://support.Microsoft.com/kb/886695

この問題は、Iisutil.dll DLLが、システムコンテキストで実行されるサービスのデスクトップセキュリティ記述子にアクセス制御エントリ(ACE)を追加するために発生します。ACEにより、Microsoft Internet Information Services Workerが許可されます。プロセスグループ(IIS_WPG)アカウントは、システムサービスデスクトップにログオンします。ただし、別のプロセスがシステムコンテキストで実行されるサービスのデスクトップセキュリティ記述子をnull値に設定すると、Iisutil.dllは任意アクセス制御リスト(DACL)を変更します。 。iisutil.dllは、非対話型ローカルシステムアカウントを使用するサービスがログオンできないようにDACLリストを変更します。

1
Dave