Azure Web部署任务失败:ASP.NET Core API EF迁移连接字符串无效
解决ASP.NET Core Web API部署时EF迁移的连接字符串错误(ERROR_INVALID_CONNECTION_STRING)
部署ASP.NET Core Web API到Azure环境,使用Entity Framework迁移连接Azure SQL数据库时,触发ERROR_INVALID_CONNECTION_STRING错误,提示连接字符串Data Source=nzwalksapi1dbserver2.database.windows.net,1433;Initial Catalog=NZWalksAPI1_db;Authentication=ActiveDirectoryManagedIdentity无效,导致Web部署任务失败。
排查与解决方案:
确认驱动版本兼容性
Authentication=Active Directory Managed Identity参数需要Microsoft.Data.SqlClient 4.0及以上版本支持,同时项目需基于.NET 6或更高版本。低版本驱动无法识别该身份验证参数,会直接判定连接字符串无效。修正连接字符串参数格式
托管身份验证的参数值存在格式要求,正确的参数写法应为带空格的Active Directory Managed Identity,而非无空格的ActiveDirectoryManagedIdentity。修正后的连接字符串:Data Source=nzwalksapi1dbserver2.database.windows.net,1433;Initial Catalog=NZWalksAPI1_db;Authentication=Active Directory Managed Identity验证Azure托管身份配置
- 确保部署Web API的Azure App Service已启用系统分配或用户分配的托管身份
- 为该托管身份授予Azure SQL数据库的权限,至少需要
DB Contributor角色(或db_ddladmin+db_datareader+db_datawriter组合权限,满足迁移执行需求) - 检查Azure SQL数据库的防火墙规则,已开启“允许Azure服务和资源访问此服务器”选项
调整迁移执行方式
避免在Web部署流程中自动执行迁移,推荐更可控的方式:- 本地生成迁移脚本:执行
dotnet ef migrations script -i -o migration.sql生成包含所有迁移的SQL脚本 - 通过Azure Portal的SQL数据库查询编辑器、SSMS或Azure CLI手动执行脚本到目标数据库
- 若需在应用启动时自动执行迁移,需确保App Service的托管身份权限足够,且连接字符串已正确配置
- 本地生成迁移脚本:执行
内容的提问来源于stack exchange,提问作者Akurathi sathvik
相关产品推荐
相关产品推荐

