文章

第25天:部屬與發布(IIS 與 Azure)

課程簡介

在今天的課程中,我們將學習如何將 ASP.NET Core 應用程式部署到兩個常見的生產環境:IIS(Internet Information Services)Azure。這兩者都是熱門的部署平台,適合不同規模和需求的應用程式。IIS 是一個在 Windows 上運行的伺服器,而 Azure 則是 Microsoft 提供的雲端平台,適合雲端應用的快速部署與擴展。


學習目標

  • 理解應用程式部署的基本流程
  • 學習如何將 ASP.NET Core 應用程式部署到 IIS 伺服器
  • 學習如何使用 Azure 部署應用程式
  • 掌握在生產環境中常見的問題排查技巧

課程內容

1. 部屬流程概述

無論是在本地或是雲端,應用程式的部署通常會經歷以下步驟:

  1. 打包應用程式:將應用程式編譯為可以運行的格式,例如將 ASP.NET Core 應用程式編譯為一個可執行檔。
  2. 配置伺服器環境:設定伺服器以支援 ASP.NET Core,並確保所有必要的服務已啟用。
  3. 上傳與部署:將應用程式檔案上傳到伺服器,並配置 IIS 或雲端環境來執行它。
  4. 監控與排錯:在部署完成後,監控應用程式運行狀況,並解決可能出現的問題。

2. 部署到 IIS(Internet Information Services)

步驟 1:安裝 IIS 與 ASP.NET Core Hosting Bundle

要在 IIS 上運行 ASP.NET Core 應用程式,首先需要在伺服器上安裝 IIS 和 ASP.NET Core Hosting Bundle

  1. 安裝 IIS
    • 開啟 伺服器管理員
    • 點選 新增角色和功能
    • 選擇 Web 伺服器 (IIS),並依據指引完成安裝。
  2. 安裝 ASP.NET Core Hosting Bundle

步驟 2:設定 IIS

  1. 新增網站
    • 開啟 IIS 管理員
    • 右鍵點選 網站,選擇 新增網站
    • 指定網站名稱,並設定實體路徑為應用程式檔案所在的資料夾。
    • 選擇適當的 主機名端口,例如 localhost80
  2. 應用程式池設置
    • 設定應用程式池為 無受控碼 (No Managed Code),因為 ASP.NET Core 應用程式不需要使用 .NET Framework 管理的 CLR。
  3. 啟用 ASP.NET Core 模組
    • 確保在 IIS 管理員中已安裝並啟用了 ASP.NET Core 模組,這個模組負責將請求代理到 Kestrel 伺服器(ASP.NET Core 預設內建伺服器)。

步驟 3:部署與測試

  1. 發行應用程式
    • 在 Visual Studio 中,右鍵點選專案,選擇 發行 (Publish)
    • 選擇 資料夾 發行方式,將應用程式打包為可執行檔。
    • 上傳已打包的檔案到指定的 IIS 網站資料夾。
  2. 測試應用程式
    • 確保網站已啟動,並在瀏覽器中輸入主機名來測試應用程式,例如 http://localhost

3. 部署到 Azure

步驟 1:建立 Azure App Service

Azure App Service 是 Microsoft 的雲端應用平台,它可以輕鬆部署 ASP.NET Core 應用程式,並支援自動擴展與高可用性。

  1. 登入 Azure 入口網站Azure Portal
  2. 建立 App Service
    • 在 Azure 入口網站上,點選 建立資源,選擇 App Service
    • 填寫應用程式名稱、資源群組、作業系統(選擇 Windows 或 Linux),並選擇定價層。

步驟 2:發行到 Azure

  1. 在 Visual Studio 發行
    • 在 Visual Studio 中右鍵點選專案,選擇 發行 (Publish)
    • 選擇 Azure App Service (Windows)Azure App Service (Linux)
    • 選擇剛剛建立的 App Service 作為發行目標,並點選 發行
  2. 使用 CLI 發行: 如果你不使用 Visual Studio,也可以透過 Azure CLI 進行部署:
    1
    
    az webapp up --name your-app-name --resource-group your-resource-group --plan your-app-service-plan
    

步驟 3:配置 Azure App Service

  1. 設定環境變數
    • 在 Azure 入口網站中,進入 設定 > 設定值,可新增或修改環境變數。
  2. 設定自動擴展
    • 在 Azure App Service 的 縮放 頁面,可以設定自動擴展規則,讓應用程式根據流量自動擴展。

步驟 4:測試與監控

  1. 測試應用程式
    • 完成部署後,直接從 Azure 提供的應用程式網址訪問應用程式,例如 https://your-app-name.azurewebsites.net
  2. 使用 Azure Monitor 監控應用程式
    • Azure 提供了強大的監控功能,可以透過 Azure Monitor 查看應用程式的效能與錯誤日誌,確保應用程式正常運行。

4. 常見問題排查

  • HTTP 500 內部伺服器錯誤:這通常是由於應用程式錯誤引起的。可以檢查應用程式日誌,或開啟詳細錯誤訊息來調試。
  • 部署後變更未反應:可能是瀏覽器快取問題,清除快取或重新整理頁面可以解決問題。
  • 應用程式不回應:檢查應用程式是否正確啟動,並確認伺服器設定與網絡連接正常。

5. 實作練習

  1. 部署至 IIS
    • 在本地的 Windows 環境中,安裝 IIS 和 ASP.NET Core Hosting Bundle,並嘗試將一個簡單的 ASP.NET Core 應用程式部署到 IIS。
    • 驗證網站是否可以正常運行,並測試應用程式的功能。
  2. 部署至 Azure
    • 註冊一個 Azure 帳號,並使用 Azure App Service 部署 ASP.NET Core 應用程式。
    • 配置應用程式設定與自動擴展,確保應用程式在高流量下仍然穩定運行。
  3. 排查與解決問題
    • 模擬常見的部署問題(例如:應用程式錯誤、設定錯誤),並學習如何透過 IIS 日誌或 Azure Monitor 來排查與解決問題。

教學重點

  • 掌握將 ASP.NET Core 應用程式部署到 IIS 和 Azure 的基本流程。
  • 了解如何設定 IIS 和 Azure App Service,以確保應用程式能夠正常運行。
  • 學會如何排查和解決部署過程中的常見問題,並進行有效的應用程式監控。

在完成本課程後,您將能夠將自己的 ASP.NET Core 應用程式部署到不同的平台,並確保它們在生產環境中穩定運行。

本文章以 CC BY 4.0 授權