如何将ASP.NET Core 3.1多项目发布至SmarterASP并部署数据库
发布ASP.NET Core 3.1多项目解决方案至SmarterASP及数据库部署指引
一、前期准备
- 确认SmarterASP主机已开通,获取主机提供的FTP/SFTP凭据(主机地址、用户名、密码),以及数据库连接信息(SQL Server实例地址、数据库名、用户名、密码)。
- 在Visual Studio 2022中,确保三个项目能本地正常编译、运行,数据库迁移可本地执行成功。
- 仓储项目需确认迁移文件已生成完毕,且
DbContext配置逻辑正确。
二、发布Web项目(主项目 + 管理面板项目)
方法1:Visual Studio发布工具
- 右键主项目 → 选择发布
- 发布目标选择FTP,点击下一步
- 填写FTP连接信息:
- 服务器:SmarterASP提供的FTP主机地址(如
ftp.yourdomain.com) - 站点路径:主项目填
/wwwroot,管理面板可设为/wwwroot/admin(避免文件冲突) - 用户名/密码:SmarterASP提供的FTP账号密码
- 勾选被动模式,点击验证连接确认连通性
- 服务器:SmarterASP提供的FTP主机地址(如
- 配置发布设置:
- 目标框架选
.NET Core 3.1,部署模式选框架依赖(SmarterASP原生支持) - 首次发布可勾选删除目标位置的现有文件,后续更新按需选择
- 目标框架选
- 点击发布,等待编译上传完成。重复上述流程发布管理面板项目。
方法2:手动编译+FTP上传
- 打开命令行,进入主项目根目录,执行编译命令:
项目根目录会生成dotnet publish -c Release -o ./publishpublish文件夹,包含所有运行所需文件。 - 用FTP工具(如FileZilla)连接SmarterASP主机,将
publish内所有文件上传至/wwwroot。 - 对管理面板项目执行同样编译命令,上传至对应路径(如
/wwwroot/admin)。
三、数据库部署(基于仓储项目的EF Core迁移)
方式1:本地生成SQL脚本手动执行
- 在Visual Studio包管理器控制台中,选择仓储项目为默认项目,执行命令生成迁移脚本:
(Script-Migration -From 0 -To Latest -Output ./MigrationScript.sql-From 0表示从初始状态生成到最新迁移,已有部分迁移可调整参数) - 通过SmarterASP的数据库管理工具(远程SSMS或主机Web端工具),新建空白数据库后,执行生成的
MigrationScript.sql脚本完成表结构创建。
方式2:远程执行EF Core迁移
- 修改仓储项目(或Web项目配置文件)的
ConnectionString为SmarterASP提供的数据库连接字符串:"ConnectionStrings": { "DefaultConnection": "Server=YOUR_SMARTERASP_SQL_SERVER;Database=YOUR_DB_NAME;User Id=YOUR_DB_USER;Password=YOUR_DB_PASSWORD;TrustServerCertificate=True" } - 命令行进入仓储项目根目录,执行迁移命令:
注意:若本地无法访问SmarterASP的SQL实例,优先使用方式1。dotnet ef database update --connection "Server=YOUR_SMARTERASP_SQL_SERVER;Database=YOUR_DB_NAME;User Id=YOUR_DB_USER;Password=YOUR_DB_PASSWORD;TrustServerCertificate=True"
四、后续配置与验证
- 修改Web项目
appsettings.json中的数据库连接字符串为SmarterASP的信息,重新发布或直接通过FTP修改服务器上的配置文件。 - 访问主项目和管理面板的域名(如
https://yourdomain.com和https://yourdomain.com/admin),验证页面加载及数据库交互功能(登录、数据查询等)是否正常。 - 若出现500错误,查看SmarterASP主机的日志文件(通常在
/wwwroot/logs或控制面板日志模块)排查问题。
内容的提问来源于stack exchange,提问作者Ravil Boyukzada
相关产品推荐
相关产品推荐

