Http <->暗号化デッドロックにより、SSL が有効な場合のブートとサービス開始の失敗が遅くなります

この記事では、起動が遅く、サービスの開始に失敗する問題の回避策を提供します。

適用対象:  Windows Server 2012R2
元の KB 番号:  2004121

現象

次の現象が発生する可能性があります。

  • Windows[コンピューターの適用] または [セキュリティ ポリシーの適用] 設定起動後にサーバーがハングします。
  • サーバーの起動が完了すると、ログオンを試みるユーザーが [ユーザー の適用] ページでハング設定。
  • 開始の種類が "自動" に設定されているサービスが起動しない場合があります。

"自動" に設定されている一部のサービスは、問題なく開始される場合があります。たとえば、次のようになります。

  • Dcom プロセス 起動ツール
  • リモート プロシージャ呼び出し
  • イベント ログ
  • グループ ポリシー クライアント
  • プラグ アンド プレイ
  • DHCP クライアント
  • DNS クライアント
  • タスク スケジューラ
  • 基本フィルター エンジン
  • ワークステーション サービス
  • Netlogon

"自動" に設定されている他のサービスは、次に示すエラーが発生することがあります。

  • 印刷スプーラー
  • ターミナル サービス
  • サーバー サービス
  • リモート レジストリ
  • WMI
  • 分散トランザクション コーディネーター
  • アプリケーションに関連するサービス

スタートアップタイプの "Automatic" でサービスを手動で開始しようとすると、エラー 1053 が発生し、「サービスが開始要求または制御要求に迅速に応答しなかった」ことを示す場合があります。

原因

「現象」セクションで説明されている問題は、サービス コントロール マネージャー (SCM) データベースのロックが原因で発生します。 ロックの結果、どのサービスも SCM データベースにアクセスしてサービス開始要求を初期化できません。 この記事で説明Windowsコンピューターが影響を受ける可能性を確認するには、コマンド プロンプト sc querylock からコマンドを実行します。

以下の出力は、SCM データベースがロックされている状態を示しています。

QueryServiceLockstatus - 成功
IsLocked: True
LockOwner: .\NT Service Control Manager
LockDuration: 1090 (取得後の秒)
イベント ログには、サービスの起動要求がタイム アウトしたことを示すサービス コントロール マネージャーからの情報以外の追加情報はありません。根本的な根本的な原因は、Service Control Manager とサービス コントロール マネージャーの間のデッドロックHTTP.SYS。

解決方法

この問題を回避するには、最初に開始されている別のサービスにHTTP.SYSの動作を変更できます。 これを実現するには、以下の手順を実行します。

  1. レジストリ エディターを開きます
  2. 次の HKLM\SYSTEM\CurrentControlSet\Services\HTTP マルチ文字列値 DependOnService に移動して作成します。
  3. 新しい DependOnService エントリをダブルクリック します。
  4. [ 値データ] フィールドに「CRYPTSVC」 と入力し 、[OK] をクリックします
  5. サーバーを再起動します。

注意

システムに変更を加える前に、レジストリ/影響を受けるキーのバックアップを作成してください。

詳細情報

サーバー 2008 Windowsでは、Windowsサービスの起動時にすべてのサービスが読み込Explorer.exe。 サービスは、ブート パフォーマンスを向上させる遅延自動開始に設定できます。