新手在IIS上發佈.NET CORE框架的系統之註意事項 序:本篇隨筆是我的處子筆,只想記錄自己覺得在系統發佈過程中比較重要的步驟,一來,忝作自己的學習筆記,以備不時之需,二來,也希望可以幫助有需要的同仁。誠然,瞭解的同學會 覺得內容太過簡單,不過技術這門功課,是會的人覺得簡單,不會的人覺得萬難,因 ...
新手在IIS上發佈.NET CORE框架的系統之註意事項
序:本篇隨筆是我的處子筆,只想記錄自己覺得在系統發佈過程中比較重要的步驟,一來,忝作自己的學習筆記,以備不時之需,二來,也希望可以幫助有需要的同仁。誠然,瞭解的同學會
覺得內容太過簡單,不過技術這門功課,是會的人覺得簡單,不會的人覺得萬難,因此就認認真真的記錄下來罷。
由於在IIS上發佈.NET CORE框架的系統和發佈一般的ASP.NET WEB應用程式的步驟大致相同,所以本文就不再一步一步贅述,只揀重要的操作說明,下麵按照開發階段和IIS部署階段來詳細描述,
本文的.NET CORE版本為2.2。
在正式開啟之前,先貼一張錯誤圖片:
(一)開發階段
1、啟用 IISIntegration 組件
在主程式中添加微軟提供的組件:Microsoft.AspNetCore.Server.IISIntegration,若是使用Nuget,可直接搜索“IISIntegration”即可找到,接著在系統入口方法(Program.cs)中啟動該組件,具體
方法為調用WebHostBuilder的UseIISIntegration方法。
(二)IIS部署階段
2、安裝AspNetCoreModule模塊
下載模塊安裝包( https://dotnet.microsoft.com/download/dotnet-core/2.2),該安裝包包含了Runtime。安裝後在控制面板中會新增3項:
在IIS發佈的網站對應模塊頁面中可以看到新增了2項:
如果你覺得V2看著比較彆扭,可以直接刪除,不影響程式的正常發佈(本地IIS親測)。剛開始我以為是因為我安裝了兩個版本的模塊,所以會有V2,然後各種卸了裝,裝了卸,後來換了一臺電
腦直接安裝2.2版本才發現,安裝了2.2就會顯示兩個模塊。
3、應用程式池的配置
這裡我想提及的並是不.NET CLR版本設置為“無托管代碼”,而是另一個比較隱秘的設置。在應用程式池的高級設置中有一個“載入用戶配置文件”選項,我本地(Win10系統)預設是True,所以在其
他工作完成後系統就能正常運行,但我將文件移到伺服器(Windows Server 2008)上時,並不能成功運行,後面仔細對比,才發現伺服器上該選項預設是False,修改為True後錯誤頁隨之消失了。
關於這個選項,我還繼續深究了一下,在本地環境下將該選項改為False,系統也可以正常運行,但伺服器上卻不行,比較分析應該是環境的原因吧。
後記:通過這次實踐,我總結出了兩個經驗:1、多看官方手冊,很多問題官方文檔里都考慮到了,但問題是對有些問題而言官方文檔太專業,小白看著吃力,比如我,所以說知識的厚度決定瞭解
決問題的難易程度,也定格了看問題的深度。2、既然知道了知識的重要性,那第二個經驗自然就是好好學習咯。
參考文獻:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2