本文內容
- 先決條件
- 安裝 .NET Core 託管捆綁包
- 建立 IIS 站點
- 建立 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 託管捆綁包安裝程式(直接下載)
-
在 IIS 伺服器上執行安裝程式。
-
重啟伺服器或在命令列介面中執行
net stop was /y
,後跟net start w3svc
。
建立 IIS 站點
-
在 IIS 伺服器上,建立一個資料夾以包含應用已釋出的資料夾和檔案。 在接下來的步驟中,資料夾路徑作為應用程式的物理路徑提供給 IIS。 有關應用部署資料夾和檔案佈局的詳細資訊,請參閱 ASP.NET Core 目錄結構。
-
在 IIS 管理器中,開啟“連線”皮膚中的伺服器節點。 右鍵單擊“站點”資料夾。 選擇上下文選單中的“新增網站”。
-
提供網站名稱,並將“物理路徑”設定為所建立應用的部署資料夾 。 提供“繫結”配置,並透過選擇“確定”建立網站 。
警告
不應使用頂級萬用字元繫結(
http://*:80/
和http://+:80
)。 頂級萬用字元繫結可能會為應用帶來安全漏洞。 此行為同時適用於強萬用字元和弱萬用字元。 使用顯式主機名而不是萬用字元。 如果可控制整個父域(區別於易受攻擊的*.com
),則子域萬用字元繫結(例如,*.mysub.com
)不具有此安全風險。 有關詳細資訊,請參閱 RFC 9110:HTTP 語義(第 7.2 節:託管和授權)。 -
確認程序模型標識擁有適當的許可權。
如果將應用池的預設標識(“程序模型”“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
- 在“解決方案資源管理器”中右鍵單擊該專案,然後選擇“釋出”。
- 在“選擇釋出目標”對話方塊中,選擇“資料夾”釋出選項 。
- 設定“資料夾或檔案共享”路徑。
- 如果為開發計算機上可用作網路共享的 IIS 站點建立了一個資料夾,請提供該共享的路徑。 當前使用者必須具有寫入許可權才能釋出到共享。
- 如果無法直接部署到 IIS 伺服器上的 IIS 站點資料夾,請釋出到可移動介質上的資料夾,並將已釋出的應用物理移動到伺服器上的 IIS 站點資料夾,該資料夾是該站點在 IIS 管理器中的物理路徑。 將
bin/Release/{TARGET FRAMEWORK}/publish
資料夾的內容移動到伺服器上的 IIS 站點資料夾,該資料夾是該站點在 IIS 管理器中的物理路徑。
- 選擇“釋出”按鈕。
瀏覽網站
應用收到第一個請求後,可以在瀏覽器中訪問該應用。 在站點的 IIS 管理器中建立的終結點繫結上發出對應用的請求。
後續步驟
在本教程中,你將瞭解:
- 在 Windows Server 上安裝.NET Core Hosting Bundle。
- 在 IIS 管理器中建立 IIS 站點。
- 部署 ASP.NET Core 應用。
若要了解有關在 IIS 上託管 ASP.NET Core 應用的詳細資訊,請參閱 IIS 概述文章: