You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2019发布自包含.Net Core 3.1应用时报SSL/TLS安全通道创建失败错误

发布.NET Core应用时SSL/TLS安全通道创建失败的排查解决流程

系统层配置校验

  • 由于你提到开发环境无主动变更,这类突发SSL握手异常通常来自Windows后台自动更新的策略改动、或发布对端的配置调整,优先核查Windows Schannel的TLS协议启用状态:定位注册表路径 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols,确认TLS 1.2、TLS 1.3对应的客户端配置项中,Enabled值为1(十六进制)、DisabledByDefault值为0,排除系统更新、安全软件强制禁用新版TLS的情况
  • 核对系统加密套件列表:打开「设置-更新和安全-Windows安全中心-设备安全性-加密」配置,确认当前系统支持的加密套件覆盖主流服务端要求的TLS1.2/1.3套件组合,不存在套件被删减的异常

开发组件版本兼容校验

  • 当前使用的Visual Studio 2019 16.9.3版本内置的NuGet 5.9.0组件存在已知的TLS协商缺陷:即使系统层面启用了新版TLS,该版本组件在发起出站请求时仍可能优先尝试已被弃用的旧版本TLS握手,且官方针对该问题的修复补丁随16.10及后续版本推送,你之前参考的TLS弃用适配指引对应的修复内容并未覆盖当前所用的16.9.x初始版本
  • 可先将Visual Studio 2019升级至对应渠道的最高兼容16.11 LTSC版本,完成后清理NuGet本地缓存(执行命令 dotnet nuget locals all --clear),重启VS后重试发布流程

发布链路定向排查

  • 核对发布目标的服务端配置:排查发布目标(包括应用服务端点、包托管服务)近期是否更新了TLS配置、替换了SSL证书,移除了对旧加密套件的支持;可通过命令行访问发布目标的接口地址,查看握手时实际使用的TLS版本、证书链兼容性,排除服务端配置不兼容导致的握手失败
  • 核查NuGet配置残留问题:打开本地NuGet主配置文件(路径%appdata%\NuGet\NuGet.Config),清理被旧脚本、安全软件写入的冗余源配置、强制协议配置项,避免配置层面强制降级TLS版本

低版本VS的兜底修复方案

如果因版本限制无法升级Visual Studio,可直接修改VS的进程配置文件强制全局使用TLS1.2发起请求:打开C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\devenv.exe.config,在<system.net>节点下添加如下配置:

<system.net>
  <settings>
    <servicePointManager securityProtocolType="Tls12" />
  </settings>
</system.net>

保存配置后重启Visual Studio即可生效。

内容的提问来源于stack exchange,提问作者Virgil H.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.26 04:24:01