いくつかの WCF エンドポイントをホストするマネージド Windows サービスがあります。PC の再起動時にサービスが自動的に開始されるように設定されています。再起動すると、次のコード行が見つかります。
ServiceHost wcfHost1 = new ServiceHost(typeof(WCFHost1));
サービスの OnStart() メソッドでは、実行に 15 ~ 20 秒かかります。実際には、そのようなステートメントが 2 つありますが、2 番目のステートメントはすぐに実行されます。こんなに時間がかかるのは初めてです。ボトルネックの原因を知っている人はいますか? このため、呼び出しが 30 秒を超える場合があり、その結果、SCM は初期化中にサービスがタイムアウトしたと見なします。これで、スレッドをスピンオフしてこれを実行し、OnStart() からすぐに戻るのは簡単ですが、この遅延の原因を知りたいです。
これは、PC の再起動時にサービスが起動したときにのみ発生します。PC が稼働している場合、サービスは 1 秒以内に開始および停止します。