& Lsquo; Varolan Bir Bağlantı Uzak Ana Bilgisayar Tarafından Zorla Kapatıldı & rsquo; Hata?

Uzak 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.

Ancak, son zamanlarda, uzak ana bilgisayara bağlanmaya çalışırken " mevcut bir bağlantı uzak ana bilgisayar tarafından zorla kapatıldı " hatasıyla ilgili birçok rapor geliyor . Bu hata, bir istemci ve bir sunucu arasındaki soket bağlantısıyla tetiklenir. Bu makalede, bu hatayı tamamen düzeltmek için bazı uygulanabilir çözümler sunacağız ve ayrıca bu hatayı tetikleyen nedenler hakkında sizi bilgilendireceğiz.

Windows'ta 'Mevcut bir bağlantı uzak ana bilgisayar tarafından zorla kapatıldı' Hatasına Neden Olan Nedir?

Birden çok 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, tetiklenme nedenlerini araştırdık ve aşağıda listeledik.

  • TLS 1.1 / 1.0 Kullanımı: Uygulama TLS 1.1 veya TLS 1.0 üzerinde çalışıyorsa, amortismana tabi tutulmaları nedeniyle bu hatayı tetikleyebilir. TLS 1.2, uygulamanın kullandığı protokolü seçerken gidilecek yoldur.
  • Şifreleme Devre Dışı: Makineniz için Şifreleme devre dışı bırakılmışsa, TLS 1.2'nin kullanımını engeller ve hatayı tetikleyebilecek TLS 1.0'a geri dönülür.
  • Soket Uygulaması: Bazı durumlarda, belirli bir soket uygulaması türü hatayı tetikler. “.NET” uygulamasının bazı uygulamalarında bir hata var ve bu hataya neden olabilir.
  • Eksik Kod: Entity Framework kullanan bazı kişilerde, hatanın tetiklenmesi nedeniyle belirli bir kod satırının eksik olduğu gözlemlendi.
  • 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.

Artık sorunun doğası hakkında temel bir anlayışa sahip olduğunuza göre, çözümlere doğru ilerleyeceğiz. Çatışmaları önlemek için bunları verildikleri sırayla uyguladığınızdan emin olun.

1.Çözüm: Kriptografiyi Etkinleştirme

Makineniz için Şifreleme devre dışı bırakıldıysa, TLS 1.2'nin kullanılması yasaktır. Bu nedenle, bu adımda Kriptografiyi etkinleştireceğiz. Bunun için:

  1. Çalıştır istemini açmak için " Windows " + " R " tuşlarına basın .
  2. Yazın “regedit” ve basın “ Enter “.
  3. Aşağıdaki adrese gidin
    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031

    Sağ bölmede " SchUseStrongCrypto " değeri yoksa bu adrese gidin .

    HKEY_LOCAL_MACHINE \ YAZILIM \ 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 .
  5. Değişikliklerinizi kaydetmek ve sorunun devam edip etmediğini kontrol etmek için " Tamam " ı tıklayın .

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

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üne gidin ve "global.asax" dosyasına sağ tıklayın .
  2. Listeden " Kodu Görüntüle " yi seçin.
  3. Bir " Application_Start " yöntemi olmalıdır, bu yönteme aşağıdaki kod satırını ekleyin
    if (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) SecurityProtocolType. Tls12;              
  4. Kaydet değişiklikleri ve onay sorunun devam edip etmediğini görmek için.

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

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

  1. Public byte [] buffer = new byte [1024], public Socket soketli 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 çağırı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 Entity Framework için)

Entity Framework kullanıyorsanız, belirli bir kod satırının eksik olması olasıdır. Bu nedenle, bu adımda, bu sorunu gidermek 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.

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

Her şeyin sorunsuz çalışması için ".NET" Framework'ün en son sürümü gereklidir. Dolayısıyla bu adımda siteden en son sürümü indirip kuracağız. Bunun için:

  1. Kurulumu indirmek için bu bağlantıya gidin.
  2. Kurulum sürecini başlatmak için " .exe " dosyasını çalıştırın.
  3. Uygulamayı bilgisayarınıza yüklemek için ekrandaki talimatları izleyin .
  4. Kurulumu tamamladıktan sonra sorunun devam edip etmediğini kontrol edin .