Det går inte att ansluta till en server med hjälp av ServicePointManager eller SslStream APIs efter uppgradering till.NET Framework 4.6

Symptom

Anta att du har uppgraderat till Microsoft.NET Framework 4.6 på datorn. Anslutningen misslyckas när du använder ett program som använder SSL 3.0 med ServicePointManager eller SslStream API: er för att ansluta till en server.

Orsak

Det här problemet uppstår eftersom standarduppsättningen av SSL/TLS-protokoll som används av ServicePointManager och SslStream har ändrats.

Gammalt värde: Ssl 3.0 | TLS 1.0 | TLS 1.1


Nytt värde: Tls 1.0 | TLS 1.1 | TLS 1.2

Temporär lösning

Undvik problemet genom att uppdatera servern Tls 1.0, Tls 1.1 eller 1.2 Tls eftersom SSL 3.0 har visat sig vara osäker och sårbar för attacker, till exempel POODLE.

Obs!  Använd klassen AppContext intresserad av den här funktionen om du inte kan uppdatera servern. Genom att använda någon av följande metoder:

  • Programmering: Måste vara mycket första programmet fungerar eftersom ServicePointManager initierar endast en gång. Använd följande kodexempel i programmet:

    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching";        private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";
    AppContext.SetSwitch(DisableCachingName, true);
    AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true);
  • Med hjälp av AppConfig-filen för tillämpningsprogrammet: Lägg till följande rad i filen Appconfig:
    < AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/ >



Mer information om kända problem i.NET Framework 4.6 finns i kända problem för.NET Framework 4.6.

Mer Information

Mer information om versionshantering produktförändringar och inverkan i.NET Framework 4.6 finns Programkompatibilitet i.NET Framework 4.6.

Kommentarer

  • Den nya konfigurationen gäller bara när programmet riktar.NET Framework 4.6. .NET Framework 4.5.2 och tidigare versioner kommer inte att påverkas även om de körs i en miljö med.NET Framework 4.6.

  • En lista över berörda översta API: er:

    • HttpClient i HttpWebRequest

    • FtpClient

    • SmtpClient

    • SslStream

  • SCH_USE_STRONG_CRYPTO Den här flaggan kommer att användas automatiskt i.NET Framework 4.6 och påverkar beteendet genom att ta bort osäkra kryptografiska och hash-algoritmer. För alla operativsystem tas tidigare än Windows 10 RC4 -algoritmen bort från användning. Ytterligare osäkra algoritmer att tas bort från Windows 10: DES, NULL, EXPORTERA och MD5


Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×