「既存の接続がリモートホストによって強制的に閉じられました」エラーを修正するにはどうすればよいですか?
リモートコンピューターは、物理的に存在しないコンピューターです。ある種のコンピュータネットワークを介してのみアクセスできます。リモートホストは、リモートコンピューターをホストするネットワークをホストするコンピューターであり、リモートクライアントはネットワーク上のリモートクライアントのユーザーです。この機能は多くのプロセスに革命をもたらし、将来的にも大きな可能性を秘めています。
ただし、ごく最近、「既存の接続がリモートホストによって強制的に閉じられた」という報告が多数寄せられています。 リモートホストに接続しようとしたときにエラーが発生しました。このエラーは、クライアントとサーバー間のソケット接続でトリガーされます。この記事では、このエラーを完全に修正するための実行可能な解決策をいくつか提供し、このエラーを引き起こす理由についてもお知らせします。
Windowsで「既存の接続がリモートホストによって強制的に閉じられました」というエラーの原因は何ですか?
複数のユーザーから多数のレポートを受け取った後、問題を調査し、それを修正するための一連のソリューションを考案することにしました。また、トリガーされた理由を調査し、以下にリストしました。
- TLS 1.1 / 1.0の使用法: アプリケーションがTLS1.1またはTLS1.0で実行されている場合、減価償却が原因でこのエラーが発生する可能性があります。 TLS 1.2は、アプリケーションが使用するプロトコルを選択する際の方法です。
- 暗号化が無効になっています: マシンで暗号化が無効になっている場合、TLS 1.2の使用が妨げられ、TLS 1.0にフォールバックして、エラーをトリガーする可能性があります。
- ソケットの実装: 場合によっては、特定のタイプのソケット実装がエラーをトリガーします。 「.NET」アプリケーションによる一部の実装にはバグがあり、このエラーが発生する可能性があります。
- 欠落しているコード: Entity Frameworkを使用していた一部の人にとって、エラーがトリガーされたために特定のコード行が欠落していることが観察されました。
- 古い「.NET」フレームワーク: 場合によっては、「。NET」Frameworkが無効になっていると、このエラーがトリガーされることがあります。特定のタスクを正しく機能させるには、「。NET」フレームワークを最新バージョンに更新する必要があります。
問題の性質についての基本的な理解ができたので、次に解決策に進みます。競合を避けるために、これらは提示された特定の順序で実装してください。
解決策1:暗号化を有効にする
お使いのマシンで暗号化が無効になっている場合、TLS1.2の使用は禁止されています。したがって、このステップでは、暗号化を有効にします。そのために:
- 「ウィンドウ」を押します 」+「R 」をクリックして、実行プロンプトを開きます。
- 「regedit」と入力します 「Enter」を押します 「。
- 次のアドレスに移動します
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.3031
「SchUseStrongCrypto」がない場合は、このアドレスに移動します 右ペインの「」の値。
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319
- 右側のペインで、「 SchUseStrongCrypto」をダブルクリックします 」オプションを選択し、「 1」と入力します 」を値データとして。
- 「OK」をクリックします 」をクリックして変更を保存し、チェック 問題が解決するかどうかを確認します。
解決策2:TLS1.2の使用を強制する
アプリケーションがTLS1.2の代わりにTLS1.1またはTLS1.0を使用するように構成されている場合、このエラーがトリガーされる可能性があります。したがって、このステップでは、TLS1.2を使用するようにコンピューターを構成します。そのために:
- サイトのルートに移動し、「global.asax」を右クリックします ファイル。
- 「表示」を選択します コード 」をリストから。
- 「Application_Start」が必要です 」メソッドの場合、そのメソッドに次のコード行を追加します
if (ServicePointManager.SecurityProtocol.HasFlag(SecurityProtocolType.Tls12) == false) { ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls12; }
- 保存 変更と確認 問題が解決するかどうかを確認します。
ソリューション3:ソケット実装の変更
特定のソケット実装にバグまたはグリッチがある場合、アプリケーションの特定の要素が正しく機能しなくなる可能性があり、そのためにこのエラーがトリガーされる可能性があります。したがって、このステップでは、別の実装を使用するように構成します。そのために:
- 「StateObjec」があることを確認してください 「publicbyte[] buffer =new byte [1024]、public Socketsocket;」を含む「t」クラス 「。
- 「Receive(Sockets)」と呼びます 」関数を使用して、「 void ReceiveCallback(IAsyncResult ar)」で次のコードを呼び出します。 ”
SocketError errorCode; int nBytesRec = socket.EndReceive(ar, out errorCode); if (errorCode != SocketError.Success) { nBytesRec = 0; }
- このコードを実装した後も問題が解決しないかどうかを確認してください。
解決策4:コマンドラインの追加(Entity Frameworkの場合のみ)
Entity Frameworkを使用している場合は、特定のコード行が欠落している可能性があります。したがって、このステップでは、この問題を修正するためにそのコード行を追加します。そのために:
- 「.edmx」を開きます 」ファイルを開き、「 .context.tt」を開きます その下の」ファイル。
- 「.context.cs」を開きます ”ファイルを作成し、コンストラクターに次のコード行を追加します
public DBEntities() : base("name=DBEntities") { this.Configuration.ProxyCreationEnabled = false; // ADD THIS LINE ! }
- このコード行を追加した後も問題が解決しないかどうかを確認してください。
解決策5:.NETFrameworkの更新
すべてがスムーズに機能するには、最新バージョンの「.NET」フレームワークが必要です。したがって、このステップでは、サイトから最新バージョンをダウンロードしてインストールします。そのために:
- このリンクに移動して、セットアップをダウンロードします。
- 「.exe」を実行します 」ファイルを使用して、インストールプロセスを開始します。
- フォロー コンピュータにアプリケーションをインストールするための画面上の指示。
- 確認 インストールの完了後も問題が解決しないかどうかを確認します。
-
リモート デバイスまたはリソースが接続エラーを受け入れない問題を修正
インターネットにアクセスできませんパソコン?接続が制限されていることを示していますか?理由が何であれ、最初にネットワーク診断を実行するだけです。この場合、「リモート デバイスまたはリソースが接続を受け入れません」というエラー メッセージが表示されます。 「. PC でこのエラーが発生する理由 このエラーは、特にネットワーク構成が正しくない場合に発生します または何らかの理由で、コンピューターのネットワーク設定が変更されました。ネットワーク設定とは、ブラウザの設定でプロキシ ゲートが有効になっている、または正しく設定されていないなどのことを意味します。この問題は、LAN 設定を自動的に変更
-
Windows 10 でリモート プロシージャの失敗エラーを修正する方法
Windows 10 ユーザーは、特定のアクションまたはソリューションで解決できるさまざまなシステム エラーや問題に遭遇することがよくあります。 Windows 10 で「Remote Procedure Failed」エラーに直面している Windows 10 ユーザーの場合、心配はいりません。このブログ投稿で、この問題の解決策を見つけることができます。 こちらもお読みください:Windows 11/10 で白い画面を修正する方法 Windows アプリケーションを使用しようとすると、「リモート プロシージャ コールに失敗しました」という特定のエラー メッセージが表示されるという報告