.NET Framework 4.6 yükselttikten sonra ServicePointManager veya SslStream API'lerini kullanarak bir sunucuya bağlanamıyor
ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 3069494
Bilgisayarınızda Microsoft .NET Framework 4.6 yükselten varsayalım. Bir sunucuya bağlanmak için SSL 3.0 ile birlikte ServicePointManager veya SslStream API'lerini kullanan bir uygulama kullandığınızda, bağlantı başarısız olur.
Belirtiler
ServicePointManager ve SslStream tarafından kullanılan varsayılan SSL/TLS iletişim kuralları kümesi değiştiğinden bu sorun oluşur.
Neden
Eski değer: Ssl 3.0 | TLS 1.0 | TLS 1.1
Yeni değer: Tls 1.0 | TLS 1.1 | TLS 1.2
Bu soruna geçici bir çözüm için SSL 3.0 güvensiz ve şu DAR gibi saldırılara açık olarak gösterilen çünkü sunucu Tls 1.0, 1.1 Tls veya Tls 1.2 güncelleştirin.
Pratik Çözüm
Not: Sunucu güncelleştiremiyorsanız kullanın AppContext Bu özellik dışında kabul etmek için sınıf'ı tıklatın. Bunu yapmak için aşağıdaki yöntemlerden birini kullanın:
- Program aracılığıyla:ServicePointManageryalnızca bir kez başlatmak için uygulama yapacağı çok ilk şey olmalıdır. Aşağıdaki kod örneği, uygulamanızda kullanın:
private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto"; AppContext.SetSwitch(DisableCachingName, true); AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true);
- Uygulamanız için AppConfig dosyası kullanarak: Appconfig dosyasına aşağıdaki satırı ekleyin:
<AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"></AppContextSwitchOverrides>
.NET Framework 4.6 olarak bilinen sorunlar hakkında daha fazla bilgi için bkz. .NET Framework 4.6 için bilinen sorunlar.
Ürün sürüm değişiklikleri ve .NET Framework 4.6 etkileri hakkında daha fazla bilgi için bkz. .NET Framework 4. 6'daki uygulama uyumluluğu.
Daha fazla bilgi
Notlar
- Uygulamayı .NET Framework 4.6 gösterirken yeni yapılandırma yalnızca geçerli olur. Bir .NET Framework 4.6 ortamında çalıştırıyorsanız bile .NET Framework 4.5.2 ve önceki versionswill etkilenmiş değil.
- Üst düzey etkilenen API'ların bir listesi:
- HttpClient, HttpWebRequest
- FtpClient
- SmtpClient
- SslStream
- SCH_USE_STRONG_CRYPTO Bu bayrak, .NET Framework 4. 6'de otomatik olarak kullanılmak üzere gittiği ve güvenli şifreleme ve karma algoritmalarını kaldırarak davranışını etkiler. Tüm işletim sistemi platformları için Windows 10'dan öncekiRC4 algoritması kullanımdan kaldırılır. Aşağıdaki ek güvenli olmayan algoritmalar Windows 10'dan kaldırılacak:DES, NULL, verme ve MD5
Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır
Özellikler
Makale No: 3069494 - Son İnceleme: 07/20/2015 15:57:00 - Düzeltme: 2.0
Microsoft .NET Framework 4.6
- kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB3069494 KbMttr