如下是筆者在 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