將 ASP.NET Core 應用釋出到 IIS

宏宇發表於2024-08-02
轉:https://learn.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-8.0&tabs=visual-studio

本文內容

  1. 先決條件
  2. 安裝 .NET Core 託管捆綁包
  3. 建立 IIS 站點
  4. 建立 ASP.NET Core Razor Pages 應用

本教程介紹如何在 IIS 伺服器上託管 ASP.NET Core 應用。

本教程涵蓋以下主題:

  • 在 Windows Server 上安裝.NET Core Hosting Bundle。
  • 在 IIS 管理器中建立 IIS 站點。
  • 部署 ASP.NET Core 應用。

先決條件

  • .NET Core SDK 安裝在開發計算機上。
  • Windows Server 配置了“Web 伺服器 (IIS)”伺服器角色。 如果伺服器未配置為託管具有 IIS 的網站,請按照使用 IIS 在 Windows 上託管 ASP.NET Core 文章中“IIS 配置”部分的指南操作,然後返回本教程。

警告

IIS 配置和網站安全涉及到本教程未介紹的概念。 在 IIS 上託管生產應用之前,請先參閱 Microsoft IIS 文件中的 IIS 指南和有關使用 IIS 進行託管的 ASP.NET Core 文章

本教程未介紹的 IIS 託管的重要方案包括:

  • 為 ASP.NET Core 資料保護建立登錄檔配置單元
  • 配置應用池的訪問控制列表 (ACL)
  • 為了重點介紹 IIS 部署概念,本教程部署了一個沒有在 IIS 中配置 HTTPS 安全性的應用。 有關託管為 HTTPS 協議啟用的應用的詳細資訊,請參閱本文其他資源部分中的安全主題。 有關託管 ASP.NET Core 應用的更多指南,請參閱使用 IIS 在 Windows 上託管 ASP.NET Core 文章。

安裝 .NET Core 託管捆綁包

在 IIS 伺服器上安裝 .NET Core 託管捆綁包。 捆綁包可安裝 .NET Core 執行時、.NET Core 庫和 ASP.NET Core 模組。 該模組允許 ASP.NET Core 應用在 IIS 後面執行。

使用以下連結下載安裝程式:

當前 .NET Core 託管捆綁包安裝程式(直接下載)

  1. 在 IIS 伺服器上執行安裝程式。

  2. 重啟伺服器或在命令列介面中執行 net stop was /y,後跟 net start w3svc

建立 IIS 站點

  1. 在 IIS 伺服器上,建立一個資料夾以包含應用已釋出的資料夾和檔案。 在接下來的步驟中,資料夾路徑作為應用程式的物理路徑提供給 IIS。 有關應用部署資料夾和檔案佈局的詳細資訊,請參閱 ASP.NET Core 目錄結構

  2. 在 IIS 管理器中,開啟“連線”皮膚中的伺服器節點。 右鍵單擊“站點”資料夾。 選擇上下文選單中的“新增網站”。

  3. 提供網站名稱,並將“物理路徑”設定為所建立應用的部署資料夾 。 提供“繫結”配置,並透過選擇“確定”建立網站 。

    警告

    不應使用頂級萬用字元繫結(http://*:80/http://+:80)。 頂級萬用字元繫結可能會為應用帶來安全漏洞。 此行為同時適用於強萬用字元和弱萬用字元。 使用顯式主機名而不是萬用字元。 如果可控制整個父域(區別於易受攻擊的 *.com),則子域萬用字元繫結(例如,*.mysub.com)不具有此安全風險。 有關詳細資訊,請參閱 RFC 9110:HTTP 語義(第 7.2 節:託管和授權)

  4. 確認程序模型標識擁有適當的許可權。

    如果將應用池的預設標識(“程序模型”“Identity”)從 ApplicationPoolIdentity 更改為另一標識,請確保新標識擁有對應用資料夾、資料庫和其他所需資源的必需訪問許可權。 例如,應用池需要對資料夾的讀取和寫入許可權,以便應用在其中讀取和寫入檔案。

建立 ASP.NET Core Razor Pages 應用

按照 ASP.NET Core 入門教程建立 Razor Pages 應用。

釋出和部署應用

釋出應用意味著生成可由伺服器託管的編譯應用。 部署應用意味著將釋出的應用移動到託管系統。 釋出步驟由 .NET Core SDK 處理,而部署步驟可以透過各種方法處理。 本教程採用“資料夾”部署方法,即:

  • 將應用釋出到一個資料夾。
  • 資料夾的內容將移動到 IIS 站點的資料夾(IIS 管理器中站點的物理路徑)。
  • Visual Studio
  • .NET CLI
  • Visual Studio for Mac
  1. 在“解決方案資源管理器”中右鍵單擊該專案,然後選擇“釋出”。
  2. 在“選擇釋出目標”對話方塊中,選擇“資料夾”釋出選項 。
  3. 設定“資料夾或檔案共享”路徑。
    • 如果為開發計算機上可用作網路共享的 IIS 站點建立了一個資料夾,請提供該共享的路徑。 當前使用者必須具有寫入許可權才能釋出到共享。
    • 如果無法直接部署到 IIS 伺服器上的 IIS 站點資料夾,請釋出到可移動介質上的資料夾,並將已釋出的應用物理移動到伺服器上的 IIS 站點資料夾,該資料夾是該站點在 IIS 管理器中的物理路徑。 將 bin/Release/{TARGET FRAMEWORK}/publish 資料夾的內容移動到伺服器上的 IIS 站點資料夾,該資料夾是該站點在 IIS 管理器中的物理路徑。
  4. 選擇“釋出”按鈕。

瀏覽網站

應用收到第一個請求後,可以在瀏覽器中訪問該應用。 在站點的 IIS 管理器中建立的終結點繫結上發出對應用的請求。

後續步驟

在本教程中,你將瞭解:

  • 在 Windows Server 上安裝.NET Core Hosting Bundle。
  • 在 IIS 管理器中建立 IIS 站點。
  • 部署 ASP.NET Core 應用。

若要了解有關在 IIS 上託管 ASP.NET Core 應用的詳細資訊,請參閱 IIS 概述文章:

相關文章