[實戰筆記] 關於 .net core MVC 架構在windows 上的部署

[實戰筆記]

身為一位專業的 IT 人員,我們時常會有部署程式的需求。

這時你可能嘗試按照已知的步驟部署了,但是 on 起來網頁就是死在那給你看。

這時你可能就需要這本實戰筆記了...

參考筆記並不可恥,可恥的是交付成果無法交付。

| 部署 ---------------------------------------------------------------------------------------

通常以一個 MVC 架構的應用程式來說,部署可以分成以下幾個部分:

  1. 應用程式發行
    • 以 .net Core 來説,記得選對版本。並建議選擇 ”獨立式“以降低與framework 的相依性。
    • 環境建置
      • 防火牆設定,請注意你預計使用的 port 是否已打開防火牆。若沒有打開,不論你自己在 Server 上 run 的多順利,外部怎麼連都會連不上的。
      • 資料庫設定,如果你的應用程式有使用到資料庫,請務必注意應用程式中所使用的登入角色是否在資料庫設定中存在並權限是否足夠
      • 若你的程式有串接 API ,請務必注意是否該主機位置連接的上提供Service 的 API Server。(尤其是 API Server 在內網,而 product 環境又在不同網段,我們往往會容易忽略它造成永無止盡的鬼打牆)
    • 部署到 IIS
      • 啟動 IIS 服務
      • 指定 port 號與資料夾位置
      • 設定資料夾與存取權限,設定 IIS_IUSRS 角色並賦予 fully control 權限。
    • 網站上線
    | 除錯 ---------------------------------------------------------------------------------------

    An error occurred while starting the application.
    It's seem something bad happened while application running.

    以上步驟若都檢查過都無誤,但網站還是出現上述問題或根本連不上線。

    那這時你可能需要 log 來輔助你查找網站問題了。

    • Step 1: 到你的 發行資料夾中 查找 web.confg 檔案並找到 "log" 這個關鍵字,
      將它從 false 改成 true. 
    • Step 2: 在發行資料夾中建立一個名叫 logs 的資料夾
      (系統是不會自動幫你新增的,如果沒有這個資料夾,log 就噴不出來)
    • Step 3:看看噴出的log 有什麼精彩內容
    通常總結大部分的錯誤
    • 外部連不上,但直接在部署的伺服器開瀏覽器連連得上大部分是防火牆設定的問題。
    • 網站無法上線,如果顯示是存取權限問題(例如 502.5) 通常是 IIS_IUSRS 角色沒設或沒有設成 Fully control.
    • 網站無法上線,如果顯示重大錯誤(例如上述 An error occured ...) 這個就比較麻煩一點,有可能是程式問題、亦有可能是無法連接資料庫(若你有使用的話),建議檢查程式中登入角色是否設對,資料庫設定中是否有該該入角色與其權限是否開足。






    留言

    這個網誌中的熱門文章

    【Python】py2exe 使用方法教學

    【Python】將python 打包成exe執行檔 (pyinstaller 使用方法教學)

    【作業系統】重點名詞解釋