.NET 6 API部署IIS后无法连接SQL Server求助
问题排查与解决方案
核心问题原因
你的连接字符串同时配置了SQL Server身份验证(User Id+Password)和Windows身份验证(Trusted_Connection=True),SQL Server会优先使用Windows身份验证,也就是以IIS应用池的账户IIS APPPOOL\Login API尝试登录数据库,而非你配置的指定用户,这直接导致了登录失败。
解决方案
方案1:修正连接字符串(推荐,使用SQL身份验证)
直接移除Trusted_Connection=True;,让连接字符串使用配置的SQL账号登录:
Server=<server>;Database=<dbname>;User Id=<user>;Password=<pass>;
修改后重启IIS应用池,测试API连接。
方案2:使用Windows身份验证(适配应用池账户)
如果想保留Windows身份验证方式,可按以下操作:
- 打开IIS管理器,找到你的API对应的应用池(名称为
Login API) - 右键点击应用池→高级设置,查看“标识”项
- 若继续使用应用池账户:在SQL Server中添加
IIS APPPOOL\Login API作为登录名,映射到目标数据库并授予所需的读写权限 - 若切换为指定账户:将标识改为已在SQL Server中配置好权限的域账户/本地账户,保存后重启应用池
- 若继续使用应用池账户:在SQL Server中添加
额外验证项
- 确认SQL Server开启了混合身份验证模式:打开SQL Server Management Studio,右键服务器→属性→安全性,选择“SQL Server和Windows身份验证模式”,修改后重启SQL Server服务
- 检查服务器防火墙是否允许访问SQL Server默认端口(1433)
- 核对连接字符串中的服务器地址、数据库名、账号密码是否完全正确,无未替换的占位符
内容的提问来源于stack exchange,提问作者Mary Franklin
相关产品推荐
相关产品推荐

