'Mevcut Bir Bağlantı Uzak Sunucu Tarafından Zorla Kapatıldı' Hatası Nasıl Düzeltilir?

Uzaktaki bir bilgisayar, fiziksel varlığı olmayan bilgisayardır; yalnızca bir tür bilgisayar ağı aracılığıyla erişilebilir. Uzak Ana Bilgisayar, uzak bilgisayarı barındıran ağı barındıran bilgisayardır ve uzak istemci, ağdaki uzak istemcinin kullanıcısıdır. Bu özellik birçok süreçte devrim yarattı ve gelecekte de büyük bir kapsamı var.

Mevcut bir Bağlantı yerel ana bilgisayar hatası nedeniyle zorla kapatıldı

Ancak, son zamanlarda, uzak ana bilgisayara bağlanmaya çalışırken “ mevcut ana bilgisayar tarafından uzak bir sunucu tarafından zorla kapatıldı ” hatasıyla ilgili bir çok rapor yayınlandı. Bu hata, bir istemci ile bir sunucu arasındaki soket bağlantısı ile tetiklenir. Bu yazıda, bu hatayı tamamen düzeltmek için size uygun çözümler sunacağız ve ayrıca bu hatayı tetikleyen nedenleri size bildireceğiz.

Windows'taki 'Mevcut bir bağlantı uzaktaki bilgisayar tarafından zorla kapatıldı' Hatasına Neden Oldu?

Birden fazla kullanıcıdan çok sayıda rapor aldıktan sonra, sorunu araştırmaya karar verdik ve düzeltmek için bir dizi çözüm geliştirdik. Ayrıca, neden tetiklendiği ve aşağıda listelendiği için nedenleri araştırdık.

  • TLS 1.1 / 1.0 Kullanım: Uygulama TLS 1.1 veya TLS 1.0 üzerinde çalışıyorsa, bu hatayı amortismana neden olabileceği için tetikleyebilir. TLS 1.2, uygulamanın kullandığı protokolü seçerken gidilecek yoldur.
  • Şifreleme Devre Dışı Bırakıldı: Makineniz için Şifreleme Devre Dışı Bırakıldıysa, TLS 1.2 kullanımını engeller ve hatayı tetikleyebilecek TLS 1.0'a geri döner.
  • Soket Uygulaması: Bazı durumlarda, belirli bir soket uygulaması türü hatayı tetikler. “.NET” uygulaması tarafından bazı uygulamalarda bir hata var ve bu hataya neden olabilir.
  • Kayıp Kod: Varlık Çerçevesini kullanan bazı insanlar için, hatanın tetiklenmesinden dolayı belirli bir kod satırının eksik olduğu görülmüştür.
  • Eski “.NET” Çerçevesi: Bazı durumlarda, “.NET” Çerçevesi devre dışı bırakılmışsa, bu hata tetiklenebilir. Bazı görevler, düzgün çalışması için “.NET” çerçevesinin en son sürüme güncellenmesini gerektirir.

Şimdi problemin doğası hakkında temel bir anlayışa sahip olduğunuza, çözümlere doğru ilerleyeceğiz. Çatışmalardan kaçınmak için bunları verildikleri sıraya göre uyguladığınızdan emin olun.

1. Çözüm: Şifrelemeyi Etkinleştirme

Makineniz için Kriptografi devre dışı bırakılmışsa, TLS 1.2 kullanımı yasaktır. Bu nedenle, bu adımda Kriptografiyi etkinleştireceğiz. Bunun için:

  1. Çalıştır komut istemini açmak için “ Windows ” + “ R ” tuşlarına basın.
  2. “Regedit” yazınız ve “ Enter ” a basınız .

    “Regedit” yazarak ve “Enter” tuşuna basarak
  3. Aşağıdaki adrese gidin
     Microsoft \ HKEY_LOCAL_MACHINE \ SOFTWARE \ .NETFramework \ v4.0.3031 

    Sağ bölmede “ SchUseStrongCrypto ” değeri yoksa, bu adrese gidin.

     HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319 
  4. Sağ bölmede, “ SchUseStrongCrypto ” seçeneğine çift tıklayın ve Değer verisi olarak “ 1 ” girin.

    Sağ bölmedeki “SchUseStrongCrypto” değerine çift tıklayarak
  5. Değişikliklerinizi kaydetmek ve sorunun devam edip etmediğini kontrol etmek için “ Tamam ” düğmesine tıklayın.

2. Çözüm: TLS 1.2 Kullanımını Zorlamak

Uygulama, TLS 1.2 yerine TLS 1.1 veya TLS 1.0 kullanacak şekilde yapılandırılmışsa, bu hatayı tetikleyebilir. Bu nedenle, bu adımda, bilgisayarımızı TLS 1.2 kullanacak şekilde yapılandıracağız. Bunun için:

  1. Sitenin kök dizinine gidin ve “global.asax” dosyasına sağ tıklayın.
  2. Listeden “ Kod Görüntüle ” yi seçin.
  3. Bir “ Application_Start ” yöntemi olmalı, bu yönteme aşağıdaki kod satırını ekleyin.
     if (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == yanlış) ServicePointManager. SecurityProtocol = ServicePointManager. SecurityProtocol 

    Satırları koda ekleme
  4. Değişikliklerinizi kaydedin ve sorunun devam edip etmediğini kontrol edin .

3. Çözüm: Soket Uygulamasını Değiştirme

Belirli bir soket uygulamasının içinde bir hata veya aksaklık varsa, uygulamanın belirli öğelerinin bu hatanın tetiklenmesi nedeniyle düzgün çalışmasını engelleyebilir. Bu nedenle, bu adımda farklı bir uygulamayı kullanacak şekilde yapılandıracağız. Bunun için:

  1. Public byte [] buffer = new byte [1024], public Soket soketi olan bir“ StateObjec t ”sınıfınız olduğundan emin olun ; “.
  2. Receive (Socket s) ” işlevini çağırın ve “ void ReceiveCallback (IAsyncResult ar) ” içinde aşağıdaki kodu arayın
      SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar, out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Bu kodu uyguladıktan sonra sorunun devam edip etmediğini kontrol edin.

4. Çözüm: Komut Satırları Ekleme (Yalnızca Varlık Çerçevesi için)

Varlık Çerçevesini kullanıyorsanız, belirli bir kod satırının eksik olması muhtemeldir. Bu nedenle, bu adımda, bu sorunu çözmek için bu kod satırını ekleyeceğiz. Bunun için:

  1. .Edmx ” dosyanızı açın ve altındaki “ .context.tt ” dosyasını açın.
  2. .Context.cs ” dosyasını açın ve aşağıdaki kod satırını kurucunuza ekleyin
      public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Bu kod satırını ekledikten sonra sorunun devam edip etmediğini kontrol edin.

5. Çözüm: .NET Framework'ü Güncelleme

Her şeyin sorunsuzca çalışması için “.NET” Çerçevesinin en son sürümü gereklidir. Bu nedenle, bu adımda siteden en son sürümü indirip yükleyeceğiz. Bunun için:

  1. Kurulumu indirmek için bu bağlantıya gidin.
  2. Kurulum işlemini başlatmak için “ .exe ” dosyasını yürütün.

    Microsoft'tan indirilen yürütülebilir dosyayı çalıştırma
  3. Uygulamayı bilgisayarınıza yüklemek için ekrandaki talimatları izleyin .
  4. Kurulumu tamamladıktan sonra sorunun devam edip etmediğini kontrol edin .

Ilginç Haberler