如下是笔者在 Ubuntu 16.0-64bit 环境下 发布 ABP(.NetCore)的全过程。特此记录,但愿对你们有所帮助。sql
1.PuTTY(ssh,若是不想每次都用阿里云的远程登陆,那么能够试试这个。)数据库
2.WinSCP(图形化SFTP客户端,美观又好用)json
3.Ubuntu 16.0-64bitubuntu
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B02C46DF417A0893
sudo apt-get update
2)安装 .NET Core SDKcentos
sudo apt-get install dotnet-dev-1.0.4
检验安装结果: 运行 dotnet 后若是是以下结果,则说明安装成功安全
dotnet
习惯用命令行 发布项目(不知道何时养成的怪癖) 在项目的根目录里,有一个build文件夹,进入此文件夹,运行 build-mvc.ps1服务器
cd C:\Users\Zac\Desktop\YourProductName\build .\build-mvc.ps1
等待发布完成. . . 会发现生成了一个outputs文件夹,发布生成的文件所有打包至了Mvc文件夹中。mvc
(up.ps1 和 down.ps1 是在须要发布到Docker容器中时使用的ps脚本。)app
至此 发布工做已结束。ssh
当你的项目须要远程连接数据库时,请先配置好数据库服务器(包括登陆用户权限设置,TCP UDP 开放端口设置。默认TCP端口1433,UDP端口1434,若是防火墙启动,须要将sqlserver.exe添加到容许列表。阿里云安全组设置等等...全是踩过的坑)
其次,注意配置好链接字符串,在 appsettings.json 中。
"ConnectionStrings": { "Default": "Data Source=xx.xx.xx.xx; Initial Catalog=YourDB; User Id=sa; password=yourpassword; MultipleActiveResultSets=True;" },
如下两种是错误的连接字符串配置:
"ConnectionStrings": { "Default": "Server=xx.xx.xx.xx; Database=YourDb; User=zac; Password=123qwe;" },
"ConnectionStrings": { "Default": "Data Source=xx.xx.xx.xx\/YourDb; User=zac; Password=123qwe;" },
在链接字符串错误的状况下,运行项目将致使如下错误发生:
Unhandled Exception: System.NotSupportedException: The keyword 'integrated security' is not supported on this platform.
以前提到的WinSCP该派上用场了。(WinSCP下载连接)
1)打开 WinSCP 连接至你的服务器。
如图,左边是本地文件资源,右边是服务器文件资源。支持在文件夹中拖拽上传文件。
2)将上一步发布的文件夹(MVC)上传至服务器。
如图所示,已经将全部生成的文件都上传至build文件夹下。
进入项目入口所在的文件夹(例如,你的项目名称为 MyProduct,那么运行的文件应该就是 MyProduct.Web.Mvc.dll,完整的路径就是 root/zac/Mvc/build/MyProduct.Web.Mvc.dll Linux下路径是区分大小写的)
cd zac/Mvc/build
运行 MyProduct.Web.Mvc.dll
dotnet MyProduct.Web.Mvc.dll
若是一切顺利的话,输出以下
一切OK 访问一下你的网站吧!(先别急,看看你的阿里云安全组有没有开发相应的端口。)
.NetCore安装参考网址,https://www.microsoft.com/net/core#centos
.NetCore下载地址,https://www.microsoft.com/net/download#core