Cara Memperbaiki & Lsquo; Sambungan Sedia Ada Ditutup secara Paksa oleh Host Jauh & rsquo; Ralat?

Komputer jarak jauh adalah komputer yang tidak mempunyai fizikal; ia dapat diakses hanya melalui beberapa jenis rangkaian komputer. Host Jauh adalah komputer yang mengehadkan rangkaian yang mengehoskan komputer jarak jauh dan klien jauh adalah pengguna klien jarak jauh di rangkaian. Ciri ini telah merevolusikan banyak proses dan mempunyai ruang lingkup yang besar di masa depan juga.

Namun, baru-baru ini, terdapat banyak laporan mengenai ralat " sambungan yang ada ditutup secara paksa oleh host jauh " semasa cuba menyambung ke host jauh. Kesalahan ini dicetuskan dengan sambungan soket antara klien dan pelayan. Dalam artikel ini, kami akan memberikan beberapa penyelesaian yang sesuai untuk membetulkan ralat ini sepenuhnya dan juga memberitahu anda mengenai sebab-sebab yang menyebabkan kesalahan ini.

Apa Punca Kesalahan 'Sambungan yang ada ditutup secara paksa oleh hos jauh' di Windows?

Setelah menerima banyak laporan dari beberapa pengguna, kami memutuskan untuk menyiasat masalah tersebut dan merancang satu set penyelesaian untuk memperbaikinya. Kami juga melihat sebab-sebab mengapa ia dicetuskan dan menyenaraikannya di bawah.

  • Penggunaan TLS 1.1 / 1.0: Jika aplikasi berjalan pada TLS 1.1 atau TLS 1.0, ia mungkin mencetuskan ralat ini kerana mereka menyusut nilai. TLS 1.2 adalah cara yang harus diambil ketika memilih protokol yang digunakan aplikasi.
  • Kriptografi Dinonaktifkan: Jika Kriptografi telah dilumpuhkan untuk mesin anda, ia akan menghalang penggunaan TLS 1.2 dan akan kembali menggunakan TLS 1.0 yang mungkin mencetuskan ralat.
  • Pelaksanaan Socket: Dalam beberapa kes, jenis pelaksanaan soket tertentu mencetuskan kesalahan. Terdapat bug dengan beberapa implementasi oleh aplikasi ".NET" dan mungkin menyebabkan ralat ini.
  • Hilang Kod: Bagi sebilangan orang yang menggunakan Entity Framework, diperhatikan bahawa garis kod tertentu hilang kerana kesalahan tersebut dicetuskan.
  • Kerangka “.NET” yang sudah usang: Dalam kes tertentu, jika Kerangka “.NET” telah dinonaktifkan, kesalahan ini mungkin dipicu. Tugas-tugas tertentu memerlukan kerangka “.NET” diperbaharui ke versi terbaru agar mereka dapat berfungsi dengan baik.

Setelah anda memahami asas mengenai masalah ini, kami akan terus mencari jalan keluarnya. Pastikan untuk menerapkannya dalam urutan khusus di mana ia disajikan untuk mengelakkan konflik.

Penyelesaian 1: Mengaktifkan Kriptografi

Sekiranya Kriptografi telah dilumpuhkan untuk mesin anda, penggunaan TLS 1.2 dilarang. Oleh itu, dalam langkah ini, kami akan mengaktifkan Kriptografi. Untuk itu:

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

    Navigasi 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 pilihan " SchUseStrongCrypto " dan masukkan " 1 " sebagai data Nilai.
  5. Klik " OK " untuk menyimpan perubahan anda dan periksa untuk melihat apakah masalah itu berlanjutan.

Penyelesaian 2: Memaksa Penggunaan TLS 1.2

Sekiranya aplikasi telah dikonfigurasikan untuk menggunakan TLS 1.1 atau TLS 1.0 dan bukan TLS 1.2, aplikasi tersebut mungkin akan menyebabkan kesalahan ini. Oleh itu, dalam langkah ini, kita akan mengkonfigurasi komputer kita untuk menggunakan TLS 1.2. Untuk itu:

  1. Navigasikan ke akar laman web dan klik kanan pada fail "global.asax" .
  2. Pilih " Lihat Kod " dari senarai.
  3. Harus ada kaedah " Application_Start ", tambahkan baris kod berikut ke kaedah itu
    jika (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) SecurityProtocolType. Tls12;              
  4. Simpan perubahan anda dan periksa untuk melihat apakah masalah itu berterusan.

Penyelesaian 3: Mengubah Pelaksanaan Soket

Sekiranya implementasi soket tertentu memiliki bug atau kesalahan di dalamnya, ini mungkin mencegah elemen aplikasi tertentu berfungsi dengan baik kerana kesalahan ini mungkin dipicu. Oleh itu, dalam langkah ini, kami akan mengkonfigurasinya untuk menggunakan pelaksanaan yang berbeza. Untuk itu:

  1. Pastikan anda mempunyai kelas " StateObjec t" dengan " public byte [] buffer = new byte [1024], public Socket socket; ".
  2. Panggil fungsi " Terima (Socket s) " dan panggil kod berikut dalam " 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 itu berterusan setelah melaksanakan kod ini.

Penyelesaian 4: Menambah Baris Perintah (Hanya untuk Kerangka Entiti)

Sekiranya anda menggunakan Entity Framework, ada kemungkinan barisan kod tertentu mungkin hilang. Oleh itu, dalam langkah ini, kami akan menambahkan baris kod tersebut untuk menyelesaikan masalah ini. Untuk itu:

  1. Buka fail " .edmx " anda dan buka fail " .context.tt " di bawahnya.
  2. Buka fail " .context.cs " dan tambahkan baris kod berikut ke pembina anda
     public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Periksa untuk melihat apakah masalah itu berterusan setelah menambahkan baris kod ini.

Penyelesaian 5: Mengemas kini .NET Framework

Versi terbaru dari. .NET Framework diperlukan agar semuanya dapat berjalan dengan lancar. Oleh itu, dalam langkah ini, kami akan memuat turun versi terbaru dari laman web dan memasangnya. Untuk itu:

  1. Navigasikan ke pautan ini untuk memuat turun persediaan.
  2. Jalankan fail " .exe " untuk memulakan proses pemasangan.
  3. Ikuti arahan pada skrin untuk memasang aplikasi di komputer anda.
  4. Periksa untuk melihat apakah masalah itu berterusan setelah menyelesaikan pemasangan.