Negalite prisijungti prie serverio naudojant ServicePointManager arba SslStream API po atnaujinimo į .NET Framework 4.6

SVARBU: šis straipsnis išverstas naudojant „Microsoft“ mašininio vertimo programinę įrangą ir gali būti pataisytas naudojant „Community Translation Framework“ (CTF) technologiją. „Microsoft“ siūlo mašinos išverstus ir po to bendruomenės suredaguotus straipsnius, taip pat žmogaus išverstus straipsnius siekdama suteikti prieigą prie visų savo žinių bazės straipsnių daugeliu kalbų. Mašinos išverstuose ir vėliau paredaguotuose straipsniuose gali būti žodyno, sintaksės ir / arba gramatikos klaidų. „Microsoft“ neatsako už jokius netikslumus, klaidas arba žalą, patirtą dėl neteisingo turinio vertimo arba mūsų klientų naudojimosi juo. Daugiau apie CTF žr. http://support.microsoft.com/gp/machine-translation-corrections.

Spustelėkite čia, norėdami pamatyti šio straipsnio versiją anglų kalba: 3069494
Požymiai
Tarkime, kad turite atnaujinti Microsoft .NET Framework 4.6 jūsų kompiuteryje. Kai naudojate programą, kuri naudoja SSL 3.0 kartu su ServicePointManager arba SslStream API, kad prisijungti prie serverio, ryšio užmegzti nepavyksta.
Priežastis
Ši problema kyla dėl to, kad pasikeitė numatytasis SSL/TLS protokolų rinkinys, kuris naudojamas ServicePointManager ir SslStream .

Seną vertę: Ssl 3.0 | TLS 1.0 | TLS 1.1

Nauja reikšmė: Tls 1.0 | TLS 1.1 | TLS 1.2

Problemos sprendimas
Norėdami išspręsti šią problemą, atnaujinti serverį Tls 1.0, Tls 1.1 arba Tls 1.2, nes SSL 3.0 rodo, kad nesaugius ir gali juos įveikti, pvz., Pudelis.

Pastaba. Jei negalite atnaujinti serverį, naudokite AppContext klasės atsisakyti šios funkcijos. Norėdami tai padaryti, naudokite vieną iš toliau nurodytų būdų:
  • Programinis: Turi būti labai pirmiausia programos nėra,nesServicePointManagerbusinicijuoti tik vieną kartą. Naudokite toliau pateiktą kodo pavyzdį naudojant savo programą:
    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching";        private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";        AppContext.SetSwitch(DisableCachingName, true);        AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true);
  • Naudojant AppConfig failą, kad programa: įtraukite šią eilutę į Appconfig failą:
    <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"></AppContextSwitchOverrides>


Jei norite gauti daugiau informacijos apie žinomas ".NET Framework 4.6" problemas, žr. Žinomos problemos, .NET Framework 4.6.
Daugiau informacijos
Jei norite gauti daugiau informacijos apie produkto versijos pakeitimus ir poveikis .NET Framework 4.6, žr. .NET Framework 4.6 taikomųjų programų suderinamumas.

Pastabos
  • Nauja konfigūracija bus taikoma tik kai programa yra skirta .NET Framework 4.6. .NET Framework 4.5.2 ir ankstesnėse versionswill neturi įtakos net jei jie paleisti .NET Framework 4.6 aplinkoje.
  • Įtakos aukščiausio lygio API sąrašas:
    • HttpClient, HttpWebRequest
    • FtpClient
    • SmtpClient
    • SslStream
  • SCH_USE_STRONG_CRYPTO Ši žymė bus automatiškai naudoti .NET Framework 4.6 ir veikia veikimo pašalinti nesaugų šifravimo ir maišos algoritmai. Visoms platformoms operacinės sistemos versiją nei Windows 10,RC4 algoritmas bus pašalintas iš naudojimo. Iš "Windows" 10, bus pašalinti šiuos papildomos nesaugių algoritmus:DES, NULL, eksportuoti ir MD5

Įspėjimas: šis straipsnis išverstas automatiškai

Savybės

Straipsnio ID: 3069494 – Paskutinė peržiūra: 06/11/2016 21:09:00 – Peržiūra: 2.0

Microsoft .NET Framework 4.6

  • kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB3069494 KbMtlt
Atsiliepimai