我正在使用 Visual Studio 2022 - v17.9.6。
当我尝试从现有 SQL Server 数据库修改或添加类型化数据集或实体框架 (v6) 模型时,收到有关受信任证书的错误,该证书很可能来自 Microsoft.Data.SqlClient。
我根本不使用该驱动程序进行数据访问。另外,我可以在同一应用程序中很好地连接到数据库。换句话说,假设我有一个在调试时工作正常的类型化数据集,当我尝试修改类型化数据集或添加新的表适配器时,它只会给我一个错误。
在这两种情况下,这些都是 .NET Framework 4.8 项目。
当我尝试更改查询的
CommandText
时,键入的数据集错误:
与服务器建立了连接,但登录过程中出现错误。 (提供商:SSL 提供商,错误:0 - 证书链是由不受信任的机构颁发的。)
在向导中选择数据连接后,将实体框架添加到新项目会引发类似的错误,但它引用了
Microsoft.Data.SqlClient
:
不知何故,我在更改现有实体框架模型时没有遇到此问题。我只有在添加新错误时才会出现该错误。
如果没有任何引用,那么对
Microsoft.Data.SqlClient
的引用来自哪里?
我尝试修复我的安装以及更新 Visual Studio。如果可能的话,我想避免卸载和重新安装。
我也尝试过卸载扩展。唯一可能出现问题的问题是 SQL Server Data Tools - SQL Editor。这似乎并没有保持卸载状态,也不可能出现问题。
我尝试将
trustServerCertificate=true
和 Encrypt=False
添加到连接字符串中,但这没有也不应该产生影响,因为程序仍然可以正常连接到数据库。我只有在尝试进行上述更改时才会遇到问题。
我确实在 Visual Studio 中发现了一些可能相关的错误,但我现在找不到它,无论如何它应该已在早期版本中修复。
这可能是由于 SSL 证书不被信任造成的。尽管您没有直接使用 Microsoft.Data.SqlClient,但当您修改类型化数据集或添加实体框架模型时,Visual Studio 可能会间接引用它。请参考以下建议:
1:尝试清理并重新生成开发环境的 SSL 证书: 工具 > NuGet 包管理器 > 包管理器控制台,运行以下命令:
dotnet 开发证书 https --clean
dotnet 开发证书 https --trust
2:我在我的环境(VS 2022 17.9.7)测试过,没有发现任何问题。建议您更新到最新版本再尝试看看是否还有错误。
3:检查项目文件中的bin/obj文件夹中是否包含Microsoft.Data.SqlClient。