dotnet專案CICD研究整理3

建置IIS並佈署dotnet core應用程式

ZONGRU Li
Aug 23, 2023

1.首先針對2016環境安裝IIS伺服器

在伺服器管理員儀表板上操作:

從伺服器集區挑選要建構的伺服器,一般就是選到該台主機

這邊就要勾選起來"網頁伺服器IIS"會出現新的畫面填寫

後面額外多勾4.6:

先試試不重開機(當然有重開最好)

安裝過程畫面:

大約一分鐘左右裝完後看到:

背後的伺服器管理員儀表板多出:

開瀏覽器打localhost看到IIS預設歡迎網頁:

這時候可以開cmd透過指令確認IIS運作狀態:

#執行(status可以替換為其他像是stop,start,restart等):
iisreset /status

2.安裝.NET Core SDK

接著因為當前要佈署的是.NET Core程式

根據微軟文件在該機台要安裝.NET Core SDK

首先確認是否已有安裝

搜尋輸入"regedit"開啟"登錄編輯程式"視窗

#然後找到這個路徑:
電腦\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Updates

所以參考微軟連結進行安裝檔的安裝(LINK)

用以讓IIS可以運行dotnet core應用程式

沒幾秒就裝完了:

依樣透過regedit確認

看起來目前7版裝起來是叫.NET目錄,而不是.NET Core

3.設置IIS:

在"站台"右鍵新增網站

會需要指定一個目錄供程式的佈署放置檔案,如果IIS有執行的User

需要針對該目錄提供IIS的User有讀寫的權限,參考網站範例如下:

我這邊沒有特別建立IIS的User所以就略過

然後看到:

在"應用程式集區"調整剛剛建立的網站的CLR改為"沒有Managed 程式碼"

上述設定相關參考LINK

另外可以到模組去確認.NET CORE的模組是否運行:

4.嘗試把打包的檔案複製到佈署目錄去:

然後嘗試到網站看:

參考網路錯誤(LINK)

那個500.31 看起來是IIS要跑這個新版的dotnet還需要.NET Core 3.1

嘗試改安裝舊版的(LINK):

在裝一下:

重新拋檔案到佈署目錄,刷新網站變成503:

排查錯誤用事件檢視器:

後來沒看到什麼有用的訊息

改嘗試以下

後來有爬文到可能要重建站台才吃得到剛剛後安裝的.NET CORE 3.1

後來重建站台甚至機台重啟後還是503:

後來參考(LINK)打開應用程式Log

重啟集區與站台後,依樣瀏覽器嘗試連線

透過連結去下載6版的Hosting Bundle安裝(同前面3或7的安裝)

保險起見還是重載集區跟站台:

後來看到swgger頁面變成404了

但是事件檢視器正常

查看AP的log資料有產出,但是沒有內容(看起來是正常運作的樣子)

後來爬文到(LINK):

預設佈署到IIS會導致swagger不啟用,要依照上面設置環境如上Development

最終我的web.config長這樣:

才能正常啟用swagger

然後終於看到...

並且也試了可以swagger測試Get API:

記得上述佈署是先"停止"站台後

才搬移dotnet publish產出在publish目錄內的內容到站台設置的佈署目錄後

再把站台啟動才能正常佈署

搬移的內容只有:

參考微軟解說LINK

以及保哥解說LINK

鐵人文LINK

windows2016啟用安裝IIS參考LINK

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet