最近一直在做項目,發布部署的事情都是同事或者老大做的,無奈什么事都要自己嘗試經歷后才能記住,所以發布的事情輪到我了,由於是第一次發布部署項目到一個新的服務器環境,難免會遇到各種各樣的問題,總結下來,希望可以幫到需要的人。
項目框架使用的是vue+.netCore2.2所以發布的時候需要前后端分開發布,遇到的問題是挺多的,不過對自己來說也算是一種經歷吧。
一..netCore 項目發布
1.1 修改環境配置為線上服務器的數據庫地址
將網站下的三個json文件的數據庫配置修改為線上的數據庫環境
1.2設置啟動項,遷移數據庫
此操作只針對項目中已有的遷移工具,可執行下列操作
將項目內的Migrator設置為啟動項目,並修改項目下app.settings.json的連接字符串為服務器的IP,登錄名和密碼為線上數據庫的登錄名和密碼
若項目中沒有此工具,可參考以下步驟
1.程序包管理器控制台 , Package Manager Console(PMC)
打開visual studio 程序包管理控制台,首先要善於使用pmc的幫助,輸入get-help 查看幫助信息,根據提示我們可以輸入 get-help about_entityframework 獲取幫助信息,輸入命令后我們應該能看到一只霸氣的野馬頭像 ,頭像下面就是efcore的相關幫助文檔了 ,入下圖
add-migration 輸入命令后回車,提示會輸入遷移名稱,也可直接輸入 add-migration 遷移名稱
update-database 第一步添加一個遷移文件成功后,可以用該命令直接更新到數據庫,默認是所有遷移,如果想指定遷移直接加上遷移文件的名字就好了,如:update-database migrationName,也相當於版本回滾操,比如有版本1,2,3 此時我想回滾到版本1 就直接 update-database 1,此時數據庫中已經更新到1版本了,然后在兩次remove-migration把2和3的遷移文件刪除就好了
Script-Migration 這個命令用於生成遷移文件對應的sql語句的,該命令如果不加任何參數 是默認生成所有遷移文件對應的sql語句,當然也可參照格式指定參數
remove-migration 這個也是如果想刪除最后一次遷移 直接執行就好
使用 Get-Help <cmdlet-name>即可獲取對應命令文檔,如 get-help update-databa
1.3遷移數據庫到線上
F5啟動項目,會彈出提示 是否將數據庫遷移到線上服務器地址,輸入 “y”即可將數據庫遷移到服務器
1.4發布本地項目
重新將啟動項目設置為Middleware.Web.Host,並點擊發布按鈕。將項目發布到自己選定的文件夾
至此,本地.netCore 項目發布完成
二.Vue前端發布
2.1 修改IPConfig配置
vue前端發布之前,需修改IPConfig.js下的remoteUrl和baseUrl,即前后端的地址配置為服務器的IP地址。將localhost 替換為 服務器的IP地址
2.2 發布前端項目
使用命令行 發布 vue項目 終端--新建終端 輸入 命令 npm run build 回車之后,會在本地項目的目錄下生成一個dist文件夾
打開本地項目文件夾,找到dist文件夾,拷貝出來。至此本地的vue項目已發布成功。
三.部署線上服務器環境
3.1發布網站
將前端發布的dist文件夾和后端發布的文件夾一並拷貝到服務器上。打開IIS,添加前后端網站
Window+R 啟動運行 程序 輸入 mstsc 打開遠程連接 輸入遠程桌面IP和登錄名密碼。進入遠程桌面連接。
添加網站:網站名稱,物理路徑,修改端口號為前后端項目對應的端口號。
這里.netCore網站的應用程序池.NET CLR版本要改為 無托管代碼
3.2修改權限
點擊文件夾 右鍵 屬性--安全設置 添加Everyone和IIS_IUsr的權限控制為允許全部
3.3安裝.netCore環境
安裝.netCore所需要的環境 .netCoreruntime 和.netCore Hosting 附官網下載地址
https://dotnet.microsoft.com/download/dotnet-core/2.2
下載后安裝
3.4安裝vue環境
安裝vue所需環境,urlrewrite,即url重定向,防止刷新頁面導致的404URL不存在的錯誤。
四.常見的一些錯誤和解決辦法
4.1 500.19
HTTP 錯誤 500.19 - Internal Server Error 無法訪問請求的頁面,因為該頁的相關配置數據無效。
原因:環境未安裝完畢
解決辦法:重啟IIS,確保前后端所需的環境都已安裝完畢。
4.2 依賴錯誤
windows系統中Dotnet core runtime 安裝后,無法啟動次程序,因為計算機中丟失api-ms-win-crt-runtime-l1-1-0.dll的解決方法
原因:dotnet core runtime依賴vc++2015,如果系統未安裝vc++2015則會報上面的錯誤
解決辦法:先下載安裝vc++2015再安裝dotnet core runtime
4.3 502.5 進程失敗
原因:后台數據庫配置錯誤或者環境未安裝完畢。
解決辦法:
修改.netCore項目下web.config stdoutLogEnabled=”True”,然后手動新建logs文件夾,重新啟動網站,會在logs文件夾下生成一個stdoutLog的txt文件,打開即可看到詳情的錯誤信息,對照修改為正確的配置即可。
最后記得 cmd 運行 iisreset 命令,重啟IIS服務以使得配置生效。
到此,從本地發布到一台新服務器的過程就結束了。不得不感嘆,感覺還是擼代碼好點,哈哈。
自己經歷過,才能對過程更加深刻。所以有些事只有自己親自動手去嘗試,會記得更牢固,以后遇到同樣的問題就能解決了。