Azure云Web应用搭建求助:LocalDB在Linux平台不兼容问题
解决Azure Linux App Service执行数据库迁移时的"LocalDB is not supported on this platform"错误
核心原因
LocalDB仅支持Windows平台,你在Azure Linux App Service环境中执行依赖LocalDB的迁移命令,自然会触发该错误。解决方案是将迁移目标切换到你创建的Azure SQL Database,而非LocalDB。
具体解决步骤
更新App Service连接字符串
- 登录Azure门户,找到你的Azure SQL Database实例,复制其ADO.NET格式的连接字符串。
- 进入你的App Service资源,打开「配置」>「连接字符串」。
- 替换原有的LocalDB连接字符串,将新的Azure SQL连接字符串粘贴进去,类型选择
SQLAzure,保存配置。
确保迁移工具读取正确的连接字符串
- 如果是EF Core迁移,确认你的项目代码优先读取App Service注入的环境变量(.NET Core会自动将配置的连接字符串转为环境变量,命名格式为
ConnectionStrings__<你的连接字符串名称>)。 - 可通过SSH连接到App Service后执行
echo $ConnectionStrings__DefaultConnection(替换为你的连接字符串名称),验证连接字符串是否正确加载。
- 如果是EF Core迁移,确认你的项目代码优先读取App Service注入的环境变量(.NET Core会自动将配置的连接字符串转为环境变量,命名格式为
重新执行迁移命令
在SSH会话中重新运行./migrate,此时工具会连接Azure SQL Database执行架构生成,不再依赖LocalDB。替代方案:本地完成迁移再发布
若上述步骤仍有问题,可在本地支持LocalDB的环境(如Windows)中执行dotnet ef database update完成数据库架构创建,再将发布后的应用部署到Azure Linux App Service,跳过在服务器上执行迁移的步骤。
内容的提问来源于stack exchange,提问作者a.cowles
相关产品推荐
相关产品推荐

