Kan geen verbinding maken met een server met behulp van de ServicePointManager of SslStream APIs na een upgrade naar de .NET Framework-4,6

BELANGRIJK: Dit artikel is vertaald door middel van automatische vertalingssoftware van Microsoft en is mogelijk nabewerkt door de Microsoft Community via CTF-technologie (Community Translation Framework) of door een menselijke vertaler. Microsoft biedt zowel automatisch vertaalde, door mensen vertaalde en door de community nabewerkte artikelen aan, zodat er in meerdere talen toegang is tot alle artikelen in onze Knowledge Base. Een vertaald of bewerkt artikel kan fouten bevatten in vocabulaire, syntaxis of grammatica.. Microsoft is niet verantwoordelijk voor eventuele onjuistheden, fouten of schade ten gevolge van een foute vertaling van de inhoud van een bericht of het gebruik van deze vertaalde berichten door onze klanten.

De Engelstalige versie van dit artikel is de volgende: 3069494
Symptomen
Stel dat u een upgrade hebt uitgevoerd naar Microsoft .NET Framework 4.6 op uw computer. Wanneer u een toepassing die gebruikmaakt van SSL 3.0 met ServicePointManager of SslStream API's verbinding maken met een server, mislukt de verbinding.
Oorzaak
Dit probleem treedt op omdat de standaardset met SSL/TLS-protocollen die wordt gebruikt door ServicePointManager en SslStream is gewijzigd.

Oude waarde: Ssl 3.0 | TLS 1.0 | TLS 1.1

Nieuwe waarde: Tls 1.0 | TLS 1.1 | TLS 1.2

Workaround
U kunt dit probleem omzeilen door de server Tls 1.0, 1.1 Tls of Tls 1.2 bijwerken omdat SSL 3.0 onbeveiligde en kwetsbaar voor aanvallen zoals cocktailjurk maar is gebleken.

Opmerking Als u de server niet kunt bijwerken, gebruiken AppContext de klasse die niet deelnemen aan deze functie. Gebruik hiervoor een van de volgende methoden:
  • Via programmering: Moet het eerste wat dat de toepassing wel, aangezien deServicePointManagerslechts één keer wordt geïnitialiseerd. In het volgende codevoorbeeld gebruiken in uw toepassing:
    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching";        private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";        AppContext.SetSwitch(DisableCachingName, true);        AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true);
  • Met behulp van het bestand AppConfig voor uw toepassing: Voeg de volgende regel aan het bestand Appconfig:
    <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"></AppContextSwitchOverrides>


Zie voor meer informatie over bekende problemen in de .NET Framework-4,6 Bekende problemen met het .NET Framework 4.6.
Meer informatie
Zie voor meer informatie over de versioning productwijzigingen en het effect in het .NET Framework 4.6 Compatibiliteit van toepassingen in het .NET Framework 4.6.

Opmerkingen
  • De nieuwe configuratie is alleen van toepassing wanneer de toepassing is gericht op het .NET Framework 4.6. Het .NET Framework 4.5.2 eerdere versionswill geen invloed op en zelfs als ze worden uitgevoerd in een omgeving met .NET Framework 4.6.
  • Een lijst waarin dit probleem optreedt op het hoogste niveau API's:
    • HttpClient, HttpWebRequest
    • FtpClient
    • SmtpClient
    • SslStream
  • SCH_USE_STRONG_CRYPTO Deze vlag zal automatisch worden gebruikt in de .NET Framework-4.6 en gedrag beïnvloedt door het verwijderen van onveilige cryptografische en hash-algoritmen. Voor alle platforms van besturingssysteem wordt eerder dan Windows-10 hetRC4 -algoritme verwijderd uit gebruik. Windows-10 de volgende aanvullende onveilige algoritmen worden verwijderd:DES, NULL, EXPORTEREN en MD5

Waarschuwing: dit artikel is automatisch vertaald

Eigenschappen

Artikel-id: 3069494 - Laatst bijgewerkt: 07/22/2015 18:15:00 - Revisie: 1.0

Microsoft .NET Framework 4.6

  • kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB3069494 KbMtnl
Feedback