ASP.NET Core 6发布后连接SQL Server 2014失败求助
问题分析与解决建议
SQL Server版本差异确实可能是问题诱因之一,但当前连接字符串中的Trust server certificate=True参数更可能直接导致故障——该参数是SQL Server 2016及后续版本引入的,SQL Server 2014并不支持。以下是具体解决步骤:
调整连接字符串:移除不兼容的
Trust server certificate=True参数,修改后的连接字符串如下:"Server=server IP;Database=Archive;User Id=sa;Password=123;Integrated Security=False;MultipleActiveResultSets=true;"验证数据库兼容性级别:本地SQL Server 2016默认兼容性级别为130,部署到2014后需调整为120(SQL Server 2014对应级别),执行以下SQL命令:
ALTER DATABASE Archive SET COMPATIBILITY_LEVEL = 120;检查.NET Core运行时一致性:确保服务器安装的.NET Core运行时版本与本地开发环境完全匹配,版本不匹配会引发资源加载或运行时异常。
排查详细错误日志:
- 在
appsettings.json中开启详细日志,将Logging.LogLevel.Default设置为Debug,部署后查看应用日志定位具体资源加载失败点; - 查看IIS事件查看器中的应用程序日志,获取数据库连接或资源加载的具体异常信息。
- 在
测试数据库连通性:在服务器上使用SQL Server Management Studio,通过相同的
sa账号和密码连接目标数据库,确认账号拥有Archive数据库的访问权限,同时检查服务器防火墙是否开放SQL Server默认端口(1433)。检查IIS部署配置:
- 确认服务器已安装ASP.NET Core托管模块;
- 将应用程序池的.NET CLR版本设置为无托管代码;
- 确保应用程序池身份拥有应用目录的读写权限,以及数据库的访问权限。
内容的提问来源于stack exchange,提问作者Farshad Beyklu
相关产品推荐
相关产品推荐

