目錄
安裝必要的運行時和託管組件
發布和部署應用程序文件
配置IIS 站點和應用程序池
處理常見問題和權限設置
首頁 專題 IIS 將ASP.NET核心應用程序部署到IIS環境

將ASP.NET核心應用程序部署到IIS環境

Jul 07, 2025 am 02:12 AM

部署ASP.NET Core 應用到IIS 需注意以下關鍵點:1. 安裝.NET Core 運行時和Hosting Bundle,否則會導致HTTP 500 錯誤;2. 發布應用時確保包含web.config 並選擇合適發布模式;3. 配置IIS 站點及應用程序池,設置“無託管代碼”和正確權限;4. 出現問題時查看日誌並手動測試Kestrel 啟動情況。

Deploying ASP.NET Core Applications to an IIS Environment

部署ASP.NET Core 應用到IIS 環境其實並不難,但有幾個關鍵點必須注意。 IIS 本身不能直接運行.NET Core 應用,而是通過反向代理的方式將請求轉發給Kestrel 這個內建服務器。所以整個流程需要配置好IIS 和.NET Core 的配合。

Deploying ASP.NET Core Applications to an IIS Environment

安裝必要的運行時和託管組件

在開始之前,確保目標服務器已經安裝了正確的.NET Core 運行時和IIS 託管捆綁包。很多人會漏掉託管捆綁包(Hosting Bundle),這會導致應用無法正常運行。

Deploying ASP.NET Core Applications to an IIS Environment
  • 如果你使用的是.NET Core 3.1 或更高版本,需要下載並安裝對應的.NET Runtime 和Hosting Bundle。
  • Hosting Bundle 會自動安裝IIS 的模塊(如AspNetCoreModuleV2),並配置好管道模式。
  • 檢查是否安裝成功的方法:在命令行輸入dotnet --info ,看是否列出SDK 和運行時信息。

如果沒有正確安裝這些組件,即使你把程序發布上去也無法啟動,通常會看到HTTP 錯誤500.0 或500.30。

發布和部署應用程序文件

發布ASP.NET Core 應用最常用的方式是使用Visual Studio 或CLI 工俱生成自包含或依賴框架的發布包。

Deploying ASP.NET Core Applications to an IIS Environment
  • 使用Visual Studio 的話,右鍵項目選擇“發布”,然後選擇“文件夾”或遠程FTP 等方式。
  • 如果你選擇依賴框架的發布模式,那服務器上必須安裝對應的.NET 運行時;如果不想依賴環境,可以選擇自包含(self-contained)模式,但體積會大一些。
  • 發布完成後,把文件複製到服務器上的目標目錄,比如C:\inetpub\wwwroot\myapp

注意不要遺漏web.config文件,它裡麵包含了指向.NET Core 運行時的路徑和啟動參數。如果這個文件缺失或配置錯誤,IIS 就不知道怎麼處理你的應用。

配置IIS 站點和應用程序池

接下來就是在IIS 中創建站點或者應用程序,並設置好應用程序池。

  • 創建一個新的站點,綁定端口或域名,主目錄指向你發布的文件夾。
  • 應用程序池建議單獨創建一個,並設置.NET CLR 版本為“無託管代碼”,因為Kestrel 是原生進程。
  • 同時確保應用程序池的“啟用32位應用程序”設置為false,除非你有特殊需求。

如果你的應用在運行中出現崩潰或啟動失敗,可以查看日誌文件,默認會在你應用目錄下的logs文件夾中生成stdout 日誌。記得在web.config中開啟日誌記錄功能:

 <aspNetCore processPath="dotnet" arguments=".\YourApp.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />

處理常見問題和權限設置

部署過程中最常見的幾個問題包括權限不足、路徑錯誤、端口衝突等。

  • 確保IIS 用戶(通常是IIS_IUSRS )對你的應用目錄有讀寫權限,特別是如果你用了本地日誌或緩存文件的話。
  • 檢查Kestrel 是否被正確啟動。可以在服務器上手動運行一下dotnet YourApp.dll看是否有報錯。
  • 如果你在開發環境中啟用了HTTPS,但在IIS 上沒有配置證書,可能會導致重定向出錯。這時候可以臨時關閉HTTPS 強制跳轉。

另外,有些時候應用啟動沒問題,但訪問時返回500 或空白頁面,這時候一定要去看日誌。 ASP.NET Core 默認不會把詳細的錯誤信息暴露出來,除非你開啟了開發模式。

基本上就這些。只要按照步驟一步步來,大多數情況下都能順利部署。

以上是將ASP.NET核心應用程序部署到IIS環境的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP教程
1596
276
如何修復IIS中的' HTTP錯誤503。服務不可用”? 如何修復IIS中的' HTTP錯誤503。服務不可用”? Aug 08, 2025 am 03:03 AM

檢查應用池狀態,若停止則啟動並觀察是否再次停止;2.驗證應用池身份和權限,確保賬戶正確且具有足夠權限;3.查看事件查看器中的系統和應用程序日誌,定位錯誤根源;4.檢查端口衝突,確認網站綁定端口未被其他進程佔用;5.嘗試回收或重建應用池以排除配置損壞;6.啟用失敗請求跟踪,分析503錯誤的詳細原因。 IIS中HTTP錯誤503的根本原因通常是應用池問題,通過上述步驟逐一排查可解決該問題。

IIS中的續訂或替換過期的SSL證書 IIS中的續訂或替換過期的SSL證書 Aug 01, 2025 am 04:38 AM

SSL證書到期後必須及時續訂或替換以避免安全警告影響用戶訪問。判斷是否需要續訂或更換可通過IIS中查看證書狀態和到期時間,若臨近過期(通常提前30天)則需續訂,若已過期或有域名、服務商變更等情況則需更換。續訂操作包括在IIS中找到對應證書並選擇“續訂”,根據需求選擇使用相同密鑰或生成新密鑰,提交CA審核後下載安裝。更換新證書則需申請新證書並導入IIS,更新站點綁定配置,同時確保域名匹配、私鑰權限正確,遷移時帶出私鑰。其他注意事項包括:自簽名證書不適合對外服務;多台服務器同步更新時注意私鑰權限;檢

如何從IIS日誌中找到頂級IP地址? 如何從IIS日誌中找到頂級IP地址? Jul 31, 2025 am 05:02 AM

要找出IIS日誌中的頂級IP地址,1.使用LogParserStudio:加載日誌文件並運行SQL查詢統計IP頻次,生成CSV排序輸出;2.使用PowerShell:讀取日誌內容,跳過頭部,提取IP字段並分組統計,按次數降序排列;3.使用AWK SORT:在Linux環境中提取IP、排序、統計次數並按數量降序排列;注意不同日誌格式中IP字段的位置可能不同,需根據實際情況調整,確保提取準確。

如何自動存檔IIS日誌? 如何自動存檔IIS日誌? Jul 30, 2025 am 12:35 AM

要自動歸檔IIS日誌,可通過設置日誌滾動週期、使用PowerShell腳本壓縮舊日誌並配合任務計劃程序自動運行。 1.在IIS管理器中設置日誌文件滾動間隔,建議每天滾動或按大小滾動(如10MB~100MB),便於後續處理;2.編寫PowerShell腳本,查找指定路徑下超過設定天數(如7天)的日誌文件,將其壓縮至指定目錄後刪除原始文件;3.通過任務計劃程序創建基本任務,設定觸發頻率(如每天),以最高權限運行腳本,並添加參數-ExecutionPolicyBypass,確保腳本穩定執行。此外,需明確

IIS日誌中的CS-uri-STEM是什麼? IIS日誌中的CS-uri-STEM是什麼? Aug 02, 2025 am 04:54 AM

thecs-uri-steminiislogsshowstheurlpatherlequestedResourceWithOutqueryStringParameters.1.itIdentifies whichspecificpageorreSourceResourceWasAccessed,susteas/index.htmlor/index.htmlor/products/products/products/details.aspx,excludingdynamicparameterslike?

如何解釋IIS FTP日誌文件? 如何解釋IIS FTP日誌文件? Jul 30, 2025 am 01:50 AM

IISFTP日誌分析並不復雜,關鍵在於理解字段含義與狀態碼。日誌默認採用W3C格式,每行記錄包含date、time、c-ip、cs-username、s-ip、s-port、cs-method、cs-uri-stem、sc-status、sc-win32-status等字段,用於描述一次FTP操作。常見的cs-method命令包括USER(登錄)、PASS(密碼驗證)、RETR(下載)、STOR(上傳)、LIST(列目錄)等,通過這些命令可判斷用戶行為。 sc-status狀態碼用於判斷操作結果,

IIS日誌中的CS(用戶代理)是什麼? IIS日誌中的CS(用戶代理)是什麼? Jul 30, 2025 am 03:56 AM

Thecs(User-Agent)fieldinIISlogsrecordstheclient'suseragentstring,revealingthebrowser,OS,anddevicetype.1.Itincludesbrowsername/version,OS,devicetype,andsometimesrenderingengineorbotstatus.2.Ithelpsanalyzeaudience,troubleshootissues,optimizecontentdeli

IIS日誌的最佳格式是什麼? IIS日誌的最佳格式是什麼? Jul 30, 2025 am 03:50 AM

ThebestformatforIISlogsistypicallytheW3CExtendedLogFileFormatbecauseitoffersflexibility,readability,andcompatibilitywithanalysistools.CommonIISlogformatsincludeW3CExtended,IISLogFileFormat,NCSACommon,andODBCLogging,eachwithvaryinglevelsofdetailanduse

See all articles