.NET Core 7下用POCO连接SQL Server遇加载及连接错误求助
解决POCO连接本地SQL Server(.NET Core 7)的问题
针对你遇到的Failed to load provider "System.Data.SqlClient"及连接失败错误,结合你已确认的配置(远程访问开启、TCP/IP启用、SQL Server服务运行),提供以下解决步骤:
替换过时的SqlClient驱动
.NET Core 7中System.Data.SqlClient已被官方弃用,推荐使用Microsoft.Data.SqlClient。先通过NuGet安装该包:Install-Package Microsoft.Data.SqlClient # 或使用dotnet CLI dotnet add package Microsoft.Data.SqlClient同时将连接字符串中的
ProviderName从System.Data.SqlClient改为Microsoft.Data.SqlClient。修正连接字符串格式
本地SQL Server连接需匹配实例类型,示例格式如下:- 默认实例:
Server=(local);Database=你的数据库名;Trusted_Connection=True;TrustServerCertificate=True; - 命名实例:
Server=(local)\你的实例名;Database=你的数据库名;Trusted_Connection=True;TrustServerCertificate=True;
其中
TrustServerCertificate=True用于跳过本地开发环境的证书验证,避免连接拦截。- 默认实例:
检查POCO配置一致性
确保POCO的连接配置(如appsettings.json)中无拼写错误,实例名、数据库名、Provider名称需与实际环境完全匹配。示例配置:"ConnectionStrings": { "LocalDbConn": "Server=(local);Database=DemoDb;Trusted_Connection=True;TrustServerCertificate=True;ProviderName=Microsoft.Data.SqlClient" }验证本地连接有效性
- 用SQL Server Management Studio(SSMS)使用相同的连接参数(实例名、认证方式)尝试连接,确认数据库可正常访问。
- 检查Windows防火墙是否放行SQL Server默认端口(1433),即使本地连接也可能因端口拦截导致失败。
- 若使用SQL Server认证,需在连接字符串中添加
User ID=你的用户名;Password=你的密码;,并确保该账号拥有目标数据库的访问权限。
内容的提问来源于stack exchange,提问作者Adam Bajes
相关产品推荐
相关产品推荐

