如何将ASP.NET Core MVC项目部署至生产服务器
ASP.NET Core MVC 无版本控制权限的服务器部署方案
一、能不能直接修改原有解决方案?
完全可以直接改从服务器复制回来的解决方案,但得注意两个关键:
- 先在本地把修改后的代码测透,确保能正常编译、跑通所有功能,别直接动服务器上的代码,不然出问题回滚麻烦
- 如果服务器上的“原有解决方案”其实是Publish出来的部署文件(不是源码),那没法直接改——Publish文件夹里都是编译好的二进制文件,没有源码,只能用本地改好的源码重新发布后替换掉服务器上的Publish文件
二、复制解决方案后怎么发布到服务器上线?
因为没Git/TFS权限,只能手动部署,步骤很直接:
- 本地先发布项目
- 打开Visual Studio里改好的解决方案,右键项目选「发布」
- 发布目标选「文件夹」,随便指定个本地目录(比如
C:\Temp\MvcPublish) - 点「发布」,等编译完,就能得到完整的部署文件
- 先备份服务器上的现有Publish文件
- 登生产服务器,找到IIS指向的那个Publish文件夹(比如
D:\WebApps\MyMvcSite\Publish) - 把整个文件夹复制一份存到服务器其他地方,万一部署崩了能快速回滚
- 登生产服务器,找到IIS指向的那个Publish文件夹(比如
- 替换服务器上的Publish文件
- 先停掉IIS里的目标网站:打开IIS管理器,找到网站右键「停止」
- 把本地发布好的所有文件,直接覆盖复制到服务器的Publish文件夹里
- 再启动IIS网站:右键网站选「启动」
- 验证有没有生效
- 访问网站的域名或IP,检查你改的功能能不能正常用,有没有报错
额外提醒
- 如果服务器上还跑着ASP.NET Core的进程,替换文件前最好打开任务管理器,把相关的
dotnet.exe进程结束掉,不然可能会出现文件被锁没法替换的情况 - 替换的时候别把服务器上的生产配置文件(比如
appsettings.Production.json)覆盖了,如果本地改了配置,手动把内容合并进去就行,保留服务器上的生产环境配置
内容的提问来源于stack exchange,提问作者Shahnawaz Ahmad
相关产品推荐
相关产品推荐

