釋出並部署NCF站點的那些事

2023-01-28 21:01:20

簡介

開工第一天,祝大家2023年錢兔無量,技術兔飛猛進

為更加方便大家一站式打通所有使用NCF的環節,在新年開工的第一天給大家帶來如何釋出最新版本的站點

無論你的網站在開發環境做的多麼的炫酷,實用,最終都是要拉出來遛遛的,所以上測試環境,正式環境,使用雲伺服器是必經之路

這一節就是主要幫助大家排除掉在釋出和部署過程中的那些路障,讓大家把站點從開發環境部署到測試,正式環境,如自動擋換擋一樣絲滑

最終大家還是要把精力放在主要的核心業務上,不要讓這些輔助的工作耽誤大家大把的時間

下面我們就一起來說一說如何進行釋出

 

步驟

1.重新生成編譯

2.釋出前設定引數

3.釋出

4.壓縮檔案

5.複製檔案到伺服器上

6.建立IIS的站點

7.設定IIS的存取 .NET Core 的站點資訊

8.執行站點(這個過程會出現很多奇奇怪怪的問題),根據不同的問題,處理的方式也不大一樣

 

實施

1.重新生成編譯

 

 

 在Visual Studio的工具的左下角會顯示

 

 

 這樣說明全部生成成功了,再點選釋出

 

 

 選擇釋出方式的時候,選資料夾

 

 

2.釋出前設定引數

 

 

 圖中所示:

  設定:選擇是Debug還是Release,還是其他

  目標框架:不同的.NET Core的版本,net6.0/7.0等

  部署模式:框架依賴|獨立部署(倆者的區別,可以瞭解有關部署模式的資訊

  目標執行時:可以選擇可移植或者指定的執行時環境,如win-x64,linux等

3.釋出

在上一步後,點選儲存

 

 

 然後點選釋出

 

釋出完成後,看這倆個關鍵點,說明發布成功了

 

 

 

 

 進入生成的檔案的目錄

 

4.壓縮檔案

 

 

 

 

 全選檔案,點選右鍵壓縮到一個zip的壓縮包

 

 

 

5.複製壓縮檔案到伺服器上

這個就是CTRL+C(複製) , CTRL+V(貼上),貼上的時候貼到伺服器上就行

6.建立IIS的站點

首先開啟IIS

 

 新增網站

 

主要關注紅框處的幾個地方

 

 

這個是建立完成的站點

 

 

7.設定IIS的存取 .NET Core 的站點資訊

 建立站點的同時會生成一個應用程式

 

 咱現在部署的專案是.NET Core的,所以這個地方需要修改

 

 按照這個設定進行修改,修改完成後,選擇高階設定

 

 開啟後,設定引數為紅框中的值

 

 先停止應用程式,再啟用

 

 如果啟用報錯,就一直啟用,直到啟用成功為止

8.執行站點(這個過程會出現很多奇奇怪怪的問題),根據不同的問題,處理的方式也不大一樣

 比較常見的報錯如下

HTTP Error 500.31 - ANCM Failed to Find Native Dependencies
Common solutions to this issue:
The specified version of Microsoft.NetCore.App or Microsoft.AspNetCore.App was not found.

字面意思也就是說找不到 Microsoft.NetCore.App 及 Microsoft.AspNetCore.App 的對應的版本

官方錯誤檔案是:https://learn.microsoft.com/zh-cn/aspnet/core/test/troubleshoot-azure-iis?view=aspnetcore-7.0

我們去執行一下下面的命令

dotnet --info

結果顯示

 

 

 上面的圖比較關鍵,要從思維中先理解安裝的這些是不是IIS正在使用的,如果不匹配也會報錯

看一下下面的圖,已經是調整好的環境

 

 

 有的同學可能要問了,SDK的版本和Host的版本怎麼去知道到底對不對呢

我們來到下載.NET Core SDK的地方:https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0

 

主要去觀察紅框處的內容,便於理解

 

 

 

 

 如果使用 dotnet --info 出來的.NET Core SDK的版本和Host的版本對應上了,那麼基礎的設定就完成了,但到這裡還沒完,他可能還會報錯500.31,這時候就需要根據提示的資訊去排查了,例如

Windows紀錄檔排查,在DOS視窗中輸入eventvwr,則可以顯示,如下圖中的錯誤標識的,找到跟IIS相關的,根據提示處理即可

 

 

 例如:

Could not find 'aspnetcorev2_inprocess.dll'. Exception message:
It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '6.0.0' was not found.
  - The following frameworks were found:
      3.1.3 at [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]

You can resolve the problem by installing the specified framework and/or SDK.

The specified framework can be found at:
  - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=6.0.0&arch=x86&rid=win10-x86

意思是 6.0.0 版本的 Microsoft.NETCore.App 沒安裝,下面給出來安裝地址

https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=6.0.0&arch=x86&rid=win10-x86

安裝完成後,即可存取站點,如果還有錯誤,就繼續根據提示修復,直到沒有IIS的錯誤為止

最後呈現出來的就是我們看到的網站的資訊,如果還有什麼不清楚的,可以到社群群直接問我

 

 

 

二維條碼為盛小嗨的微信,歡迎大家一起加入NCF的大家庭

 

NCF的倉庫地址:https://github.com/NeuCharFramework/NCF

NCF Doc倉庫地址:https://github.com/NeuCharFramework/NcfDocs

歡迎大家一起來Star,Fork 一起來貢獻