エラー1053を修正する方法:サービスは開始または制御要求にタイムリーに応答しませんでしたか?

ユーザーは、「サービスが開始または制御要求にタイムリーに応答しなかった」というエラーメッセージ1053を経験します。このエラーメッセージは、サービスを開始する要求が開始されたが、時間枠で応答しなかった後に発生するタイムアウトの原因です。

Windowsサービスの問題から、起動できないカスタムサービス(ゲームやその他のサードパーティソフトウェアを含む)まで、エラーメッセージにはさまざまなバリエーションがあります。また、カスタムソフトウェアを開発しているときに、開発者がこの問題に直面することもありました。この記事では、エラーメッセージのすべてのバリエーションを検討し、問題を解決するために何ができるかについて説明します。

Windowsでエラー1053が発生する原因は何ですか?

ユーザーから最初のレポートを受け取った後、調査を開始し、サービスとして開始するメカニズムに関連するすべてのモジュールを詳しく調べました。すべての結果を収集してユーザーの応答と同期した後、いくつかの異なる理由により問題が発生したと結論付けました。それらのいくつかを以下に示します。

  • タイムアウト設定:デフォルトでは、Windowsにはタイムアウト設定があり、アプリケーションがそれを満たさない場合は、アプリケーションを強制終了して強制終了します。起動しようとしているサービスの応答に時間がかかる場合、サービスは強制終了されます。ここでは、レジストリを操作してタイムアウト設定を変更できます。
  • DLLファイルの欠落:他の多数のアプリケーションでも使用されているコンピューター上にDLLファイルが欠落している場合、エラーの別のインスタンスが発生します。このDLLファイルが競合しているか、まったく存在しない場合、エラーメッセージが表示されます。
  • システムファイルの破損/不足:この問題が発生するもう1つの原因は、コンピューターにシステムファイルの破損または不足が原因です。Windowsのインストールそのものが適切でなく、問題がある場合、議論中のエラーメッセージを含む多くの問題が発生します。
  • 古いWindows:マイクロソフトは公式Webサイトでこのエラーメッセージを正式に認識し、問題を解決するための一時的な修正プログラムをリリースしました。ただし、最近彼らはホットフィックスを削除し、Windowsの最新のイテレーションにアップグレードするようユーザーに指示しました。
  • リリースビルドの使用(開発者向け): Windowsのデバッグビルドでサービスを起動しようとすると、このエラーメッセージが表示される可能性があります。デバッグビルドは安定しておらず、リリースビルドと比較してすべての機能が実行されていません。
  • 不足しているフレームワーク(開発者向け):フレームワークの非互換性もエラーメッセージの原因です。サービスを実行しようとしているボックスとサービス自体が同じフレームワーク上にある必要があります。
  • DBサービスの問題(開発者向け):このエラーメッセージが発生する可能性があるもう1つの例は、プロジェクトの構成に問題がある場合です。サーバーの詳細を修正して、サービスへのアクセスに問題がないようにする必要があります。
  • 破損したインストール:このエラーメッセージが表示される可能性があるもう1つの一般的な例は、アプリケーションのインストール(サービスのプロンプト)が多少破損している場合です。再インストールすると役立ちます。
  • 不適切なネットワーク構成:サービスは常にネットワークと通信します。ネットワーク構成が適切でない場合、サービスがタスクを実行できず、そのため、説明中のエラーメッセージが表示される可能性があります。
  • 管理者アクセス:起動しようとしている(またはサードパーティが起動しようとしている)サービスは、通常の使用を目的としていないシステムリソースを消費している場合は、管理者として起動する必要があります。

ソリューションに進む前に、コンピューターに管理者としてログインし、インターネットに接続していることを確認してください。また、最初から解決策に従って、それに応じて作業を進めてください。

解決策1:レジストリを介してタイムアウト設定を変更する

最初に試すべきことは、レジストリエディタを使用してサービスのタイムアウト設定を変更することです。サービスの起動が要求されると、事前定義された値でタイマーが開始されます。この時間枠内にサービスが開始しない場合、エラーメッセージが転送されて報告されます。このソリューションでは、コンピューターのレジストリに移動して値を変更します。存在しない場合は、新しいキーを作成します。

  1. Windows + R を押し、ダイアログボックスに「regedit」と入力してEnterキーを押します。
  2. レジストリエディターで、次のファイルパスに移動します。
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \
  1. 次に、「ServicesPipeTimeout」のキーを検索します。既にそこにある場合は、直接編集に移動できます。ただし、エントリが見つからない場合は、[ Control ]を選択し、画面の右側にあるスペースを右クリックして、[ New]> [DWORD]を選択します。
  2. キーに「ServicesPipeTimeout」という名前を付け、値を180000に設定します(値を設定するオプションが表示されない場合は、値を右クリックして[ 変更 ]をクリックすることもできます。
  3. 変更を保存して終了します。コンピュータを完全に再起動してから、サービスを起動してみてください。問題が解決したかどうかを確認します。

解決策2:システムファイルの破損を確認する

より技術的で高度な方法に進む前に試すもう1つのことは、システムに破損がないかどうかを確認することです。非常にWindowsにファイルがなく、何らかの形で破損している場合、いくつかの重要なモジュールが機能しない可能性があります。その結果、エラーメッセージ1053が発生します。このソリューションでは、Windowsのシステムファイルチェッカーを使用して、すべてのシステムファイル構造をチェックし、構造をオンラインにある新しいコピーの構造と比較します。矛盾がある場合、ファイルはそれに応じて置き換えられます。

  1. Windows + Sを押し、ダイアログボックスに「コマンドプロンプト」と入力し、アプリケーションを右クリックして[ 管理者として実行 ]を選択します
  2. 管理者特権のコマンドプロンプトで、次のコマンドを1つずつ実行し、それらが完了することを確認します。
sfc / scannow DISM /オンライン/ Cleanup-Image / RestoreHealth
  1. 後者のコマンドは、スキャンの実行時にシステムファイルチェッカーが診断する問題を修正します。コマンドを実行した後、コンピューターを完全に再起動し、問題が完全に解決されたかどうかを確認します。

解決策3:アプリケーションを再インストールする(該当する場合)

エラーメッセージ1053を根絶するもう1つの便利な方法は、サービスを要求しているアプリケーションを再インストールすることです。通常、外部ソース(Microsoft Storeを除く)からインストールされたサードパーティアプリケーションには、Windowsの一部のサービスを要求しているコンポーネントが見つからないか、古い可能性があります。

ここでできることは、公式Webサイトに移動して、アプリケーションの最新バージョンをダウンロードすることです。現在のバージョンをアンインストールした後、インストールできます。Windowsでアプリケーションをアンインストールする方法は次のとおりです。

  1. Windows + R を押し、ダイアログボックスに「appwiz.cpl」と入力してEnterキーを押します。
  2. アプリケーションマネージャでアプリケーションを検索し、右クリックして[ アンインストール ]を選択します。
  3. コンピュータを再起動し、再インストールプロセスを続行します。

解決策4:ネットワークキャッシュと構成をリセットする

インターネットに接続し、そこで作業を行うサービスを使用している場合は、すべてのソケットと他のネットワーク構成に問題がなく、問題が発生していないかどうかを確認することをお勧めします。それらがそうである場合、あなたのサービスはそのタスクを実行するためにインターネットに接続することができず、それゆえ困難を引き起こすかもしれません。

このソリューションでは、管理者としてコマンドプロンプトに移動し、そこからネットワーク構成をリセットします。成功した場合、エラーメッセージは消去されます。

注:これにより、手動で設定したすべてのカスタム設定が消去されます。

  1. Windows + Rを押し、ダイアログボックスに「コマンドプロンプト」と入力し、アプリケーションを右クリックして、「管理者として実行」を選択します。
  2. 管理者特権のコマンドプロンプトで、次のコマンドを1つずつ実行します。
netsh winsockリセットipconfig / renew
  1. ネットワークをリセットしたら、ブラウザでインターネットにアクセスできることを確認し、問題が解決したかどうかを確認します。

解決策5:アプリケーションの所有権を取得する

私たちが遭遇したもう1つのまれなケースは、アプリケーションの所有権がないために、アプリケーションがサービスを適切に実行しないことでした。これは、アプリケーションに十分な昇格されたアクセスがない場合、サービスとの間で応答を送受信できない(特にシステムサービスの場合)ので意味があります。この記事では、アプリケーションの実行可能ファイルに移動し、所有権をユーザー名に変更します。成功すると、エラー1053が発生する問題が解決します。

  1. アプリケーションのファイル/フォルダーを見つけます。右クリックして[ プロパティ ]を選択します
  1. 移動の「セキュリティ」タブと「をクリック高度なあなたは下の画像で見ることができるように、画面の下部に近い」存在。
  2. 前の画面にある「変更」ボタンをクリックします。それは所有者の価値の真正面になります。ここで、このフォルダーの所有者をデフォルト値からコンピューターアカウントに変更します。
  3. 次に、存在するスペースにユーザーアカウント名を入力し、[ 名前の確認 ]をクリックします。Windowsは、この名前にヒットしたすべてのアカウントを自動的にリストします。

この方法でアカウント名が見つからない場合は、利用可能なユーザーグループのリストから手動で選択してみてください。 「詳細」をクリックし、新しいウィンドウが表示されたら、「今すぐ検索」をクリックします。画面の下部に、コンピューター上のすべてのユーザーグループで構成されるリストが表示されます。アカウントを選択して「OK」を押します。小さいウィンドウに戻ったら、もう一度[OK]を押します。

  1. 次に、「サブコンテナとオブジェクトの所有者を置き換える」という行を確認ます。これにより、フォルダー内のすべてのフォルダー/ファイルの所有権も変更されます。これにより、存在するサブディレクトリについて、すべてのプロセスを何度も繰り返す必要がなくなります。これに加えて、「すべての子オブジェクトのアクセス許可エントリをこのオブジェクトから継承可能なアクセス許可エントリに置き換える」オプションを有効にすることもお勧めします。
  2. 適用」をクリックした後、プロパティウィンドウを閉じ、後で再び開きます。移動し、セキュリティ]タブをクリックして「高度な」。
  3. 権限ウィンドウで、画面の下部にある「追加」をクリックします。
  4. 原則の選択」をクリックします。手順4と同様のウィンドウがポップアップします。その場合は手順4を繰り返します。すべての権限を確認し(フルコントロールを付与)、[ OK]を押します。
  5. すべての子オブジェクトのアクセス許可エントリをこのオブジェクトから継承可能なアクセス許可エントリで置き換える」という行を確認して、[ 適用]を押します。
  6. ファイルを閉じて、コンピュータを完全に再起動します。次に、アプリケーションを起動して、問題が完全に解決されたかどうかを確認します。

解決策6:Windowsを最新のビルドに更新する

もう1つ試すことは、更新されたバージョンのWindowsがコンピューターにインストールされているかどうかを確認することです。Microsoftは、OSの新しい変更を対象とし、追加機能もサポートするアップデートをリリースしています。一部のアップデートは本質的に「重要」であり、できるだけ早くインストールする必要があります。これらの「重要な」アップデートのいずれかがインストールされていない場合、問題が発生します。

  1. 押してWindowsの+ S検索バー、書き込み起動するアップデートをダイアログボックスにとUpdateの設定を開きます。
  2. 更新設定になったら、[更新の確認 ]をクリックします。コンピューターはMicrosoftサーバーに接続し、利用可能な更新があるかどうかを確認します。既に強調表示されている更新がある場合は、すぐに実行してください。

ボーナス:開発者向けのヒント

あなたが開発者であり、Windowsでサービスを起動しようとしている場合、サービスからスポーンして応答を得るために正確に行う必要がある何百もの技術があります。このボーナスソリューションでは、発展途上国でのエラー1053の最も一般的な原因とその解決策をいくつか示します。

  • .NET Frameworksが同期していることを確認します。起動しようとしているアプリケーション/サービスがホスティングマシンとは別のFrameworkにある場合、問題が発生します。フレームワークが同期していることを確認してください。
  • リリースビルドの使用:開発者は通常、デバッグビルドを使用してさまざまなサービスとその操作をテストする傾向があります。ただし、リリースビルドでサービスを実行しないと、いくつかの問題が発生することが指摘されています。
  • サービスの起動をデバッグするには(より深い洞察を得るため)、サービスのOnStart()メソッドの上部に以下のコードを挿入します。
while(!System.Diagnostics.Debugger.IsAttached)Thread.Sleep(100);

これにより、サービスが停止し、[デバッグ]> [攻撃]からVisual Studioデバッガーをすばやく接続できるようになります。

  • リリースDLLをコピーするか、デバッグモードではなくリリースモードからDLLファイルを取得して、インストールフォルダー内に貼り付けます。DLLファイルに関連する場合、これはすべての問題を解決します。
  • サービス/アプリケーションがアクセスしているデータベースが適切に構成されていることを確認してください。データベース自体(またはその他の資格情報)に問題がある場合は、エラーメッセージが表示されます。すべてのモジュールをもう一度確認し、すべてのパラメーターと変数が適切に設定されていることを確認することをお勧めします。