將 ASP.NET Core 應用程式發佈到 IIS
本教學課程會示範如何在 IIS 伺服器上裝載 ASP.NET Core 應用程式。
本教學課程涵蓋下列主題:
- 在 Windows Server 上安裝 .NET Core 裝載套件組合。
- 在 IIS 管理員中建立 IIS 網站。
- 部署 ASP.NET Core 應用程式。
必要條件
- 在部署電腦上安裝 .NET Core SDK。
- 使用 Web Server (IIS) 伺服器角色設定的 Windows Server。 若伺服器並未設為使用 IIS 來裝載網站,請遵循使用 IIS 在 Windows 上裝載 ASP.NET Core 一文中 IIS 設定一節內的指導,然後返回本教學課程。
警告
IIS 組態和網站安全性涉及本教學課程並未涵蓋的概念。 請諮詢 Microsoft IIS 文件和使用 IIS 進行裝載的 ASP.NET Core 文章,再於 IIS 上裝載生產應用程式。
本教學課程中尚未涵蓋的 IIS 裝載重要案例包括:
- 建立 ASP.NET Core 資料保護的登錄區
- 設定應用程式集區的存取控制清單 (ACL)
- 為了聚焦在 IIS 部署概念,本教學課程會在並未於 IIS 上設定 HTTPS 安全性的情況下部署應用程式。 如需裝載啟用 HTTPS 通訊協定應用程式的詳細資訊,請參閱本文<其他資源>一節中的安全性主題。 使用 IIS 在 Windows 上裝載 ASP.NET Core 一文中提供裝載 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. 節主機和 :authority)。確認處理序模型 identity 具有適當的權限。
如果您將應用程式集區的預設 identity ([處理序模型] >Identity) 從
ApplicationPoolIdentity
變更為其他 identity,請確認新的 identity 具有必要權限,可存取應用程式的資料夾、資料庫和其他必要的資源。 例如,應用程式集區需要針對應用程式讀取和寫入檔案的資料夾取得讀取和寫入權限。
建立 ASP.NET Core Razor Pages 應用程式
請遵循開始使用 ASP.NET Core 教學課程,來建立 Razor Pages 應用程式。
發佈及部署應用程式
「發佈應用程式」表示產生可由伺服器裝載的編譯應用程式。 「部署應用程式」表示將發佈後的應用程式移動到裝載系統。 發佈步驟會由 .NET Core SDK 處理,部署步驟則是可以透過各種方式處理。 本教學課程採用「資料夾」部署方法,其中:
- 應用程式會發佈到資料夾。
- 資料夾內容會移動到 IIS 網站的資料夾 (指向 IIS 管理員中網站的實體路徑)。
- 在 [方案總管] 中,以滑鼠右鍵按一下專案,然後選取 [發佈]。
- 在 [挑選發佈目標] 對話方塊中,選取 [資料夾] 發佈選項。
- 設定 [資料夾或檔案共用] 路徑。
- 若您針對部署電腦上提供為網路共用的 IIS 網站建立資料夾,則請提供指向共用的路徑。 目前的使用者必須具備寫入存取權限才能發佈到共用。
- 若您無法直接部署到 IIS 伺服器上的 IIS 網站資料夾,請發佈到卸除式媒體上資料夾,並透過物理方式將所發佈應用程式實際移動到伺服器上的 IIS 網站資料夾,即 IIS 管理員中網站的實體路徑。 將
bin/Release/{TARGET FRAMEWORK}/publish
資料夾的內容移至伺服器上的 IIS 網站資料夾,這是 IIS 管理員中網站的實體路徑。
- 選取 [發佈] 按鈕。
瀏覽網站
應用程式會在收到第一個要求時,在瀏覽器中提供存取。 在您於 IIS 管理員中為網站建立的端點繫結處,對應用程式發出要求。
下一步
在本教學課程中,您已了解如何:
- 在 Windows Server 上安裝 .NET Core 裝載套件組合。
- 在 IIS 管理員中建立 IIS 網站。
- 部署 ASP.NET Core 應用程式。
若要深入了解在 IIS 上裝載 ASP.NET Core 應用程式,請參閱 IIS 概觀文章:
其他資源
ASP.NET Core 文件集中的文章
- 適用於 IIS 的 ASP.NET Core 模組 (ANCM)
- ASP.NET Core 目錄結構
- 針對 Azure App Service 和 IIS 上的 ASP.NET Core 進行疑難排解
- 在 ASP.NET Core 中強制執行 HTTPS
- IIS 上的 WebSocket
與 ASP.NET Core 應用程式部署相關的文章
- 使用 Visual Studio 將 ASP.NET Core 應用程式發行到 Azure
- 使用 Visual Studio Code,將 ASP.NET Core 應用程式發佈至 Azure
- 適用於 ASP.NET Core 應用程式部署的 Visual Studio 發行設定檔 (.pubxml)