ASP.NET MVC应用部署Azure异常,如何连带MySQL数据库部署?
早上好!你的推测完全正确——本地运行正常是因为数据库在你的本地机器上,发布到Azure后应用找不到对应的MySQL实例,所以访问依赖数据库的页面就会触发那个通用错误。下面我一步步教你用Azure学生订阅把ASP.NET MVC应用和MySQL数据库一起部署上去:
1. 在Azure上创建MySQL数据库实例
- 登录Azure门户,搜索「Azure Database for MySQL 灵活服务器」(学生订阅支持这个服务的免费/低价额度)
- 跟着向导完成配置:
- 选择你的学生订阅,创建一个新的资源组(把应用和数据库放在同一个资源组里,后续管理更方便)
- 设置唯一的服务器名称、管理员用户名和密码(记好这两个,后面要用到)
- 区域选离你地理位置近的,计算存储方案选「Burstable」分类下的B1ms(学生订阅能覆盖的低成本选项)
- 一定要在「连接安全性」里启用允许Azure服务访问此服务器,也可以把你的本地IP添加进去,方便后续本地调试连接Azure数据库
- 创建完成后,进入服务器的「连接字符串」选项卡,复制ADO.NET格式的连接字符串,存好备用
2. 更新应用的数据库连接配置
- 打开你的ASP.NET MVC项目,找到
appsettings.json(如果是.NET Framework则是web.config) - 把原来指向本地MySQL的连接字符串,替换成刚才复制的Azure MySQL连接字符串,注意要把字符串里的
{your_username}替换成完整的管理员用户名(格式是用户名@服务器名),{your_password}替换成你设置的密码 - 本地运行项目测试一下,确保能正常连接到Azure的MySQL数据库,避免部署后踩坑
3. 将数据库迁移同步到Azure MySQL
- 打开Visual Studio的「包管理器控制台」,或者用.NET CLI命令,运行
Update-Database命令,把你本地的EF迁移同步到Azure的MySQL数据库里,确保云端数据库的表结构和本地完全一致
4. 部署ASP.NET MVC应用到Azure App Service
- 回到Azure门户,搜索「App Service」并点击「创建」
- 配置基本信息:
- 订阅选学生订阅,资源组选和刚才MySQL服务器同一个
- 应用名称设为唯一值,发布方式选「代码」,运行时栈选你项目对应的.NET版本(比如.NET 6/7),区域选和MySQL服务器相同的(减少延迟)
- 定价计划选「免费F1」或者学生订阅支持的低价计划,足够测试使用
- 创建完成后,回到Visual Studio:
- 右键你的项目,选择「发布」
- 发布目标选「Azure」,接着选「Azure App Service(Windows)」(如果是Linux项目就选对应的选项)
- 选中你刚创建的App Service,点击「发布」等待部署完成
- 部署后可以进入App Service的「配置」选项卡,确认
ASPNETCORE_ENVIRONMENT设置为Production(默认就是这个,避免泄露敏感错误信息)
5. 验证部署结果
- 访问App Service的官方URL,试试打开之前报错的新增页面,应该能正常加载了
- 如果还是有问题,可以打开App Service的「日志流」功能,查看具体的错误日志,排查连接字符串是否正确、数据库权限是否配置到位等问题
内容的提问来源于stack exchange,提问作者Kirill Barsukov
相关产品推荐
相关产品推荐

