'원격 호스트에 의해 기존 연결이 강제로 닫혔습니다'오류를 수정하는 방법?



문제를 제거하기 위해 도구를 사용해보십시오

원격 컴퓨터는 물리적 존재가없는 컴퓨터입니다. 일종의 컴퓨터 네트워크를 통해서만 액세스 할 수 있습니다. 원격 호스트는 원격 컴퓨터를 호스팅하는 네트워크를 호스팅하는 컴퓨터이고 원격 클라이언트는 네트워크에서 원격 클라이언트의 사용자입니다. 이 기능은 많은 프로세스에 혁명을 일으켰으며 앞으로도 큰 범위를 갖습니다.



로컬 호스트 오류로 인해 기존 연결이 강제로 닫혔습니다.



그러나 최근에 많은 보고서가 ' 기존 연결이 원격 호스트에 의해 강제로 닫혔습니다. '원격 호스트에 연결하는 동안 오류가 발생했습니다. 이 오류는 클라이언트와 서버 간의 소켓 연결로 트리거됩니다. 이 기사에서는이 오류를 완전히 수정하고이 오류를 유발하는 이유를 알려줄 몇 가지 실행 가능한 솔루션을 제공합니다.



Windows에서 '원격 호스트에 의해 기존 연결이 강제로 닫혔습니다'오류의 원인은 무엇입니까?

여러 사용자로부터 수많은 보고서를받은 후 문제를 조사하기로 결정하고이를 해결하기위한 일련의 솔루션을 고안했습니다. 또한 트리거되는 이유를 조사하고 아래에 나열했습니다.

  • TLS 1.1 / 1.0 사용법 : 애플리케이션이 TLS 1.1 또는 TLS 1.0에서 실행중인 경우, 감가 상각으로 인해이 오류가 발생할 수 있습니다. TLS 1.2는 응용 프로그램에서 사용하는 프로토콜을 선택할 때 사용하는 방법입니다.
  • 암호화 비활성화 : 컴퓨터에 대해 암호화가 비활성화 된 경우 TLS 1.2 사용이 차단되고 TLS 1.0으로 대체되어 오류가 발생할 수 있습니다.
  • 소켓 구현 : 경우에 따라 특정 유형의 소켓 구현이 오류를 트리거합니다. '.NET'응용 프로그램의 일부 구현에 버그가 있으며 이로 인해이 오류가 발생할 수 있습니다.
  • 누락 된 코드 : Entity Framework를 사용하는 일부 사람들의 경우 오류가 트리거 된 특정 코드 줄이 누락 된 것으로 나타났습니다.
  • 오래된“.NET”프레임 워크 : 경우에 따라 '.NET'Framework가 비활성화 된 경우이 오류가 트리거 될 수 있습니다. 특정 작업이 제대로 작동하려면 '.NET'프레임 워크를 최신 버전으로 업데이트해야합니다.

이제 문제의 본질에 대한 기본적인 이해를 얻었으므로 해결책으로 넘어갈 것입니다. 충돌을 피하기 위해 제시된 특정 순서대로 구현해야합니다.

솔루션 1 : 암호화 활성화

컴퓨터에서 암호화가 비활성화 된 경우 TLS 1.2 사용이 금지됩니다. 따라서이 단계에서는 암호화를 활성화합니다. 그에 대한:



  1. 윈도우 '+' 아르 자형 ”을 눌러 실행 프롬프트를 엽니 다.
  2. 입력 'regedit' 그리고“ 시작하다 '.

    'Regedit'를 입력하고 'Enter'를 누릅니다.

  3. 다음 주소로 이동
    HKEY_LOCAL_MACHINE  SOFTWARE  Microsoft  .NETFramework  v4.0.3031

    '이 없으면이 주소로 이동하십시오. SchUseStrongCrypto ”값을 오른쪽 창에 표시합니다.

    HKEY_LOCAL_MACHINE  SOFTWARE  Wow6432Node  Microsoft  .NETFramework  v4.0.30319
  4. 오른쪽 창에서 ' SchUseStrongCrypto ”옵션을 선택하고“ 1 ”를 값 데이터로 사용합니다.

    오른쪽 창에서 'SchUseStrongCrypto'값을 두 번 클릭합니다.

  5. 클릭 ' 확인 ”을 눌러 변경 사항을 저장하고 검사 문제가 지속되는지 확인하십시오.

해결 방법 2 : TLS 1.2 사용 강제

애플리케이션이 TLS 1.2 대신 TLS 1.1 또는 TLS 1.0을 사용하도록 구성된 경우이 오류가 트리거 될 수 있습니다. 따라서이 단계에서는 TLS 1.2를 사용하도록 컴퓨터를 구성합니다. 그에 대한:

  1. 사이트의 루트로 이동하고 “global.asax” 파일.
  2. 고르다 ' 전망 암호 ”입니다.
  3. ' Application_Start ”메서드를 사용하려면 해당 메서드에 다음 코드 줄을 추가합니다.
    만약 (ServicePointManager.보안 프로토콜.HasFlag(SecurityProtocolType.Tls12) == 그릇된) SecurityProtocolType.Tls12;

    코드에 줄 추가

  4. 저장 변경 사항 및 검사 문제가 지속되는지 확인하십시오.

솔루션 3 : 소켓 구현 변경

특정 소켓 구현에 버그 또는 결함이있는 경우이 오류가 트리거 될 수있는 응용 프로그램의 특정 요소가 제대로 작동하지 않을 수 있습니다. 따라서이 단계에서는 다른 구현을 사용하도록 구성합니다. 그에 대한:

  1. ' StateObjec t '클래스' 공용 바이트 [] 버퍼 = 새 바이트 [1024], 공용 소켓 소켓; '.
  2. 을 부르다 ' 수신 (소켓 s) ”함수를 사용하고“ 무효 ReceiveCallback (IAsyncResult ar) '
     소켓 오류에러 코드; intnBytesRec=소켓.EndReceive(, 에러 코드); 만약 (에러 코드! = 소켓 오류.성공) {nBytesRec= 0; }
  3. 이 코드를 구현 한 후에도 문제가 지속되는지 확인하십시오.

솔루션 4 : 명령 줄 추가 (Entity Framework에만 해당)

Entity Framework를 사용하는 경우 특정 코드 줄이 누락 될 수 있습니다. 따라서이 단계에서는이 문제를 해결하기 위해 해당 코드 줄을 추가합니다. 그에 대한:

  1. ' .edmx ”파일을 열고“ .context.tt ”파일이 그 아래에 있습니다.
  2. ' .context.cs ”파일을 열고 생성자에 다음 코드 줄을 추가합니다.
    공공의 DBEntities() : 베이스('name = DBEntities') { .구성.ProxyCreationEnabled = 그릇된; //이 줄 추가! }
  3. 이 코드 줄을 추가 한 후에도 문제가 지속되는지 확인하십시오.

해결 방법 5 : .NET Framework 업데이트

모든 것이 원활하게 작동하려면 최신 버전의 '.NET'Framework가 필요합니다. 따라서이 단계에서는 사이트에서 최신 버전을 다운로드하여 설치합니다. 그에 대한:

  1. 로 이동 이 링크를 클릭하여 설정을 다운로드하십시오.
  2. 실행 ' .exe ”파일을 선택하여 설치 프로세스를 시작하십시오.

    Microsoft에서 다운로드 한 실행 파일 실행

  3. 따르다 화면 지침에 따라 컴퓨터에 응용 프로그램을 설치합니다.
  4. 검사 설치를 완료 한 후에도 문제가 지속되는지 확인하십시오.
3 분 읽기