誰でもそれが何であるか提案がありますか?
聞きたいことではありませんが、ほとんど何でも可能です。現時点で、あなたが本当に知っているのは、サービスが起動またはシャットダウンに時間がかかりすぎることです。
.Netサービスを開発した人に戻って、問題の診断に役立つかどうかを確認する必要があります。
ただし、その前に、再起動を使用する代わりに、2つの異なるアクションとしてサービスを停止および開始することをお勧めします(それらの間に短い遅延があります)。これは、問題の原因がサービスのシャットダウン時か、バックアップの開始時かを判断するのに役立つ場合があります。また、開始と停止の成功にかかる時間を判断できれば、役に立つかもしれません。
また、イベントログをチェックして、他の情報が記録されているかどうかを確認する必要があります。
サービスが開始されると、最初の起動フェーズは特定の時間(通常は30秒)以内に完了することになっています。したがって、サービスは通常、このセクションのコードの量を最小限に抑え、バックグラウンドスレッドを開始して残りの作業を実行しようとします。
同様に、サービスを停止すると、特定の時間(通常は20秒)以内にそのプロセスを完了することになっています。これは、操作が完了するまで待機するのではなく、サービスがシャットダウンされている場合にキャンセルできるように、長時間実行される操作を記述する必要があることを意味します。
起動またはシャットダウンの合計期間が制限を超えると、エラーが発生します。
エラーを引き起こす可能性のある例をいくつか示します。起動時に、サービスがコンピューター/サーバー名のDNSルックアップを実行しているとします。通常、これには数ミリ秒かかりますが、サーバーでDNSが正しく構成されていない場合、完了に15秒以上かかる可能性があります。2回目の試行では、DNSエントリがキャッシュされているため、適切な制限時間内に機能する場合があります。
もう1つの可能性は、サービスがスリープ状態になったデバイスまたはリソースに依存しており、スリープ解除にかかる時間が制限を超えていることです。2回目にサービスを試行すると、デバイスはすでに起動しており、タイムリーに応答します。
.Netサービスが広く使用されている場合、幸運なことに、インターネット上の他の誰かが同様の問題を抱えており、解決策を見つけていることがわかります。しかし、実際の原因は、起動時とシャットダウン時にサービスが実際に行っていることに大きく依存しているため、開発者と話をした方がよいでしょう。