EF6.0.11升级到7.0.0后链接Sql server 报错 证书链是由不受信任的颁发机构颁发的
时间: 2024-09-27 09:16:46 浏览: 28
当你从Entity Framework (EF) 6.0.11升级到版本7.0.0,尤其是在连接到SQL Server数据库时遇到“证书链由不受信任的颁发机构颁发”的错误,这通常是因为新的版本对SSL/TLS证书有了更严格的验证标准。EF Core 7.0开始强制使用受信根证书颁发机构(CA)签发的服务器证书。
解决这个问题的步骤可能包括:
1. **检查证书**:确认你的SQL Server是否使用了自签名的证书或者由非默认CA签发的证书。如果是这种情况,你需要获取一个受信任的证书或者将自签名证书添加到客户端的信任列表中。
2. **更新证书**:如果证书可以更新,尝试从受信CA那里获取一个新的、合法的证书并安装到SQL Server。
3. **配置证书信任**:在EF Core 7中,你可以通过`DbContext.OnConfiguring`方法设置证书信任,例如使用`UseSqlServer`方法的`Certificate`选项,传递一个包含受信任CA信息的`X509Certificate2Collection`对象。
4. **代码调整**:如果你不想手动处理每个连接,可以在应用启动时全局设置信任所有证书,但这可能会增加安全风险,仅适用于测试环境:
```csharp
services.AddDbContext<YourDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"),
sqlServerOptionsAction: sql => sql.EnableBlazorWebAssemblyMultiTenant())
.Certificate(StoreLocation.CurrentUser, StoreName.My, FindType.FindBySubjectName));
```