Cara Memperbaiki & lsquo; Sambungan yang Ada Ditutup Secara Paksa oleh Host Jarak Jauh & rsquo; Kesalahan?

Komputer jarak jauh adalah komputer yang tidak memiliki keberadaan fisik; itu hanya dapat diakses melalui semacam jaringan komputer. Host Jarak Jauh adalah komputer yang menghosting jaringan yang menjadi host komputer jarak jauh dan klien jarak jauh adalah pengguna klien jarak jauh di jaringan. Fitur ini telah merevolusi banyak proses dan memiliki cakupan yang besar di masa mendatang.

Namun, baru-baru ini, banyak laporan yang masuk tentang kesalahan " koneksi yang ada ditutup secara paksa oleh host jarak jauh " ketika mencoba untuk menyambung ke host jarak jauh. Kesalahan ini dipicu dengan koneksi soket antara klien dan server. Pada artikel ini, kami akan memberikan beberapa solusi yang layak untuk sepenuhnya memperbaiki kesalahan ini dan juga memberi tahu Anda alasan yang memicu kesalahan ini.

Apa Penyebab Kesalahan 'Sambungan yang ada ditutup secara paksa oleh host jarak jauh' di Windows?

Setelah menerima banyak laporan dari beberapa pengguna, kami memutuskan untuk menyelidiki masalah tersebut dan menemukan serangkaian solusi untuk memperbaikinya. Juga, kami melihat alasan yang dipicu dan mencantumkannya di bawah ini.

  • Penggunaan TLS 1.1 / 1.0: Jika aplikasi berjalan di TLS 1.1 atau TLS 1.0, ini mungkin memicu kesalahan ini karena mereka disusutkan. TLS 1.2 adalah cara yang harus ditempuh saat memilih protokol yang digunakan aplikasi.
  • Kriptografi Dinonaktifkan: Jika Kriptografi telah dinonaktifkan untuk mesin Anda, itu akan mencegah penggunaan TLS 1.2 dan akan kembali ke TLS 1.0 yang mungkin memicu kesalahan.
  • Implementasi Socket: Dalam beberapa kasus, jenis implementasi socket tertentu memicu kesalahan. Ada bug dengan beberapa implementasi oleh aplikasi ".NET" dan mungkin menyebabkan kesalahan ini.
  • Kode Hilang: Untuk beberapa orang yang menggunakan Entity Framework, telah diamati bahwa baris kode tertentu hilang karena kesalahan tersebut dipicu.
  • Kerangka ".NET" yang kedaluwarsa: Dalam kasus tertentu, jika Kerangka ".NET" telah dinonaktifkan, kesalahan ini mungkin dipicu. Tugas tertentu memerlukan kerangka kerja ".NET" untuk diperbarui ke versi terbaru agar dapat berfungsi dengan benar.

Sekarang setelah Anda memiliki pemahaman dasar tentang sifat masalah, kami akan melanjutkan ke solusi. Pastikan untuk menerapkan ini dalam urutan tertentu yang disajikan untuk menghindari konflik.

Solusi 1: Mengaktifkan Kriptografi

Jika Kriptografi telah dinonaktifkan untuk mesin Anda, penggunaan TLS 1.2 dilarang. Oleh karena itu, pada langkah ini, kami akan mengaktifkan Kriptografi. Untuk itu:

  1. Tekan " Windows " + " R " untuk membuka prompt Run.
  2. Ketik "regedit" dan tekan " Enter ".
  3. Arahkan ke alamat berikut
    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031

    Arahkan ke alamat ini jika tidak ada nilai " SchUseStrongCrypto " di panel kanan.

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319
  4. Di panel kanan, klik dua kali pada opsi " SchUseStrongCrypto " dan masukkan " 1 " sebagai data Nilai.
  5. Klik " OK " untuk menyimpan perubahan Anda dan periksa untuk melihat apakah masalah tetap ada.

Solusi 2: Memaksa Penggunaan TLS 1.2

Jika aplikasi telah dikonfigurasi untuk menggunakan TLS 1.1 atau TLS 1.0 sebagai ganti TLS 1.2, ini mungkin memicu kesalahan ini. Oleh karena itu, pada langkah ini, kita akan mengkonfigurasi komputer kita untuk menggunakan TLS 1.2. Untuk itu:

  1. Arahkan ke root situs dan klik kanan pada file "global.asax" .
  2. Pilih " Lihat Kode " dari daftar.
  3. Harus ada metode " Application_Start ", tambahkan baris kode berikut ke metode itu
    jika (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) SecurityProtocolType. Tls12;              
  4. Simpan perubahan Anda dan periksa untuk melihat apakah masalah tetap ada.

Solusi 3: Mengubah Implementasi Socket

Jika implementasi soket tertentu memiliki bug atau kesalahan di dalamnya, itu mungkin mencegah elemen tertentu dari aplikasi berfungsi dengan baik karena kesalahan ini mungkin dipicu. Oleh karena itu, pada langkah ini, kami akan mengonfigurasinya untuk menggunakan implementasi yang berbeda. Untuk itu:

  1. Pastikan Anda memiliki kelas " StateObjec t" dengan " byte publik [] buffer = byte baru [1024], soket soket publik; “.
  2. Panggil fungsi " Receive (Socket s) " dan panggil kode berikut di " void ReceiveCallback (IAsyncResult ar) "
     SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar , out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Periksa untuk melihat apakah masalah tetap ada setelah menerapkan kode ini.

Solusi 4: Menambahkan Baris Perintah (Hanya untuk Kerangka Entitas)

Jika Anda menggunakan Entity Framework, ada kemungkinan baris kode tertentu mungkin hilang. Oleh karena itu, pada langkah ini, kami akan menambahkan baris kode tersebut untuk memperbaiki masalah ini. Untuk itu:

  1. Buka file " .edmx " Anda dan buka file " .context.tt " di bawahnya.
  2. Buka file " .context.cs " dan tambahkan baris kode berikut ke konstruktor Anda
     public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Periksa untuk melihat apakah masalah tetap ada setelah menambahkan baris kode ini.

Solusi 5: Memperbarui .NET Framework

Versi terbaru dari ".NET" Framework diperlukan agar semuanya berfungsi dengan lancar. Oleh karena itu, pada langkah ini, kami akan mengunduh versi terbaru dari situs dan menginstalnya. Untuk itu:

  1. Arahkan ke tautan ini untuk mengunduh pengaturan.
  2. Jalankan file " .exe " untuk memulai proses instalasi.
  3. Ikuti petunjuk di layar untuk menginstal aplikasi di komputer Anda.
  4. Periksa untuk melihat apakah masalah tetap ada setelah menyelesaikan instalasi.