使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

假设您已在您的计算机上升级到 Microsoft.NET Framework 4.6。当您使用 SSL 3.0 ServicePointManager或SslStream的 Api 与用于连接到服务器的应用程序时,则连接将失败。

原因

因为ServicePointManager和SslStream使用 SSL/TLS 协议的默认设置已更改,将出现此问题。

旧值︰ Ssl 3.0 |Tls 1.0 |Tls 1.1


新值︰ Tls 1.0 |Tls 1.1 |Tls 1.2

解决方法

若要变通解决此问题,请更新服务器到 Tls 1.0、 Tls 1.1 或 Tls 1.2 因为 SSL 3.0 已证明是不安全和易受攻击,如 POODLE。

注意:如果您不能更新服务器,使用AppContext类选择取消此功能。若要执行此操作,请使用以下方法之一︰

  • 必须以编程方式︰ 应用程序ServicePointManager将初始化一次因为非常第一件事。在您的应用程序中使用下面的代码示例︰

    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching";        private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";
    AppContext.SetSwitch(DisableCachingName, true);
    AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true);
  • 通过对您的应用程序使用 AppConfig 文件︰ Appconfig 文件中添加以下行︰
    < AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/ >



有关.NET Framework 4.6 中的已知问题的详细信息,请参阅已知.NET Framework 4.6 的问题

详细信息

有关的产品的版本控制更改和.NET Framework 4.6 中的影响的详细信息,请参见.NET Framework 4.6 中应用程序兼容性

备注:

  • 当应用程序面向.NET Framework 4.6 只适用新的配置。.NET Framework 4.5.2 和早期版本中不会受到影响,即使它们运行在.NET Framework 4.6 环境。

  • 受影响的顶级 Api 的列表︰

    • HttpClient HttpWebRequest

    • FtpClient

    • SmtpClient

    • SslStream

  • SCH_USE_STRONG_CRYPTO此标志将自动用.NET Framework 4.6 并通过删除不安全的加密和哈希算法来影响行为。对于所有操作系统平台早于 Windows 10 RC4算法将从使用。从 Windows 10 将删除以下的额外不安全算法︰ DES、空值、导出和MD5


需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×