一文講通.NET Core部署到Windows IIS最全解決方案
回顧之前的ASP.NET的經典托管

在經典ASP.NET應用程序中,所有一切都托管在IIS工作進程中(w3wp.exe),這也被稱為IIS應用程序池。ASP.NET程序被托管在應用程序池中,并且被按照IIS內建的ASP.NET托管特性所實例化。當請求從http.sys傳入到ASP.NET應用程序管道時,本地運行時管理器會實例化一個代表應用程序的.NET運行時,同時引入HttpRuntime對象用來處理這個請求。來自http.sys的請求被派送到對應的應用程序池和HttpRuntime實例的托管站點。

.net core與asp.net發(fā)布有點不一樣,ASP.NET Core不再由IIS工作進程(w3wp.exe)托管,而是使用自托管Web服務器(Kestrel)運行,IIS則是作為反向代理的角色轉發(fā)請求到Kestrel不同端口的ASP.NET Core程序中,隨后就將接收到的請求推送至中間件管道中去,處理完你的請求和相關業(yè)務邏輯之后再將HTTP響應數(shù)據(jù)重新回寫到IIS中,最終轉達到不同的客戶端(瀏覽器,APP,客戶端等)。
如果你的應用只接收來自內部網絡的請求,你可以只使用Kestrel本身。

如果你將你的應用部署在公共網絡上,我們建議你使用IIS,Nginx或者Apache作為反向代理服務器。一個反向代理服務器接收來自網絡的HTTP請求并且在經過一些初步處理后將請求傳遞到Kestrel服務器。因為Kestrel不支持在多進程間分享同一端口,所以應用并不能直接和Kestrel合作。當你在某個端口上配置Kestrel運行偵聽時,不算主機頭如何標識,Kestrel會為該端口處理所有的流量。反向代理可以為多個應用共享唯一端口并將流量發(fā)送給Kestrel。

AspNetCoreModule,它是其中一個的IIS模塊,請求進入到IIS之后便立即由它轉發(fā),并迅速重定向到ASP.NET Core項目中,這時候我們無需設置應用程序池來托管我們的代碼,它只負責轉發(fā)請求而已。
1、檢查是否安裝了IIS
在瀏覽器中輸入:http://localhost:如果得到如下"Internet information Services"歡迎頁面,則IIS已經安裝且運行正常;如果得到“server not found"(找不到服務器)則IIS未安裝或已經停止運行

2、若沒有安裝IIS
2.1、打開控制面板——程序

2.2、點擊“啟用或關閉Windows功能”

2.3、點擊“Internet Information Services”,然后在打開的列表中勾選你需要的功能,點擊確定

2.4、接著windows會自動下載并安裝您勾選的系統(tǒng),耐心等待完成

當出現(xiàn)“Windows已完成請求的更改”的時候就說明完成了,點擊立即重新啟動按鈕。
電腦重啟后,在IE瀏覽器地址欄中輸入localhost,如果能正常打開就說明iis安裝成功了

3、IIS安裝完成,安裝AspNetCoreModule
IIS和ASP.NET Core 之間的對接由AspNetCoreModule提供
1、安裝.NET Core Windows Server Hosting
地址:
https://www.microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer
2、安裝完成后,打開如下頁面,雙擊IIS管理器

3、選擇左側樹的根目錄后,在右側選擇模塊,如下圖所示。

4、安裝完成后再模塊中會顯示AspNetCoreModuleV2模塊

4、創(chuàng)建網站
添加網站:
網站—>右鍵添加網站

在上圖中,我們創(chuàng)建了一個網站名為:RDICoreWeb50,并指定了到我們網站的發(fā)布路徑。
這兒最重要的一步就是要設置網站的“應用程序池”。
在IIS左側選擇“應用程序池”,在右則可以看到我們網站使用的“RDICoreWeb50”,雙擊打開,并做如何配置: 
5、VS2019發(fā)布
Vs2019發(fā)布我們可以直接發(fā)布到IIS,也可以發(fā)布到本地目錄,再用IIS的配置指向該目錄。
5.1、發(fā)布到IIS
1、右鍵項目名稱,點擊發(fā)布

2、選擇左路側的發(fā)布,單擊“啟動”。

3、選擇Web服務器。

4、單擊“下一步”,選擇Web部署。

5、單擊“下一步”,配置Web服務器連接相關信息。

6、如下界面即添加配置文件成功。

上圖我們可以發(fā)布到IIS,也可以發(fā)布到本地目錄下,再用IIS指向該目錄。
5.2、通過命令行發(fā)布應用程序
在程序包管理控制臺輸入dotnet publish --output " E:\WebSiteForIIS\RDICoreWeb50"回車(路徑和創(chuàng)建網站的路徑相同)

5.3、發(fā)布到本地文件夾,再用IIS指定發(fā)布的文件夾(推薦)
在發(fā)布頁,我們選擇“文件夾”即可,如下圖所示。

單擊“下一步”,設置需要發(fā)布的本地文件夾,如下圖所示。

單擊完成后,回到主界面,再單擊“發(fā)布”按鈕,即可發(fā)布到我們設置的目錄,如這兒設置為:E:\WebSiteForIIS\RDICoreWeb50

在上圖中單擊“配置”,如下圖所示。

5.2、預覽發(fā)布效果
發(fā)布成功后,在IIS把目錄指定到我們的發(fā)布目錄即可,如下圖所示。

發(fā)布成功后,瀏覽發(fā)布的程序,如下圖所示。


參考文章:
.NET Core部署到linux(CentOS)最全解決方案,常規(guī)篇
.NET Core部署到linux(CentOS)最全解決方案,進階篇(Supervisor+Nginx)
.NET Core部署到linux(CentOS)最全解決方案,高階篇(Docker+Nginx 或 Jexus)
.NET Core部署到linux(CentOS)最全解決方案,入魔篇(使用Docker+Jenkins實現(xiàn)持續(xù)集成、自動化部署)
一網打盡,一文講通虛擬機VirtualBox及Linux使用
RDIFramework.NET敏捷開發(fā)框架助力企業(yè)BPM業(yè)務流程系統(tǒng)的開發(fā)與落地
RDIFramework.NET敏捷開發(fā)框架 ━ 工作流程組件介紹
全新跨平臺版本.NET敏捷開發(fā)框架-RDIFramework.NET5.0震撼發(fā)布
一路走來數(shù)個年頭,感謝RDIFramework.NET框架的支持者與使用者,大家可以通過下面的地址了解詳情。
RDIFramework.NET官方網站:http://www.rdiframework.net/
RDIFramework.NET官方博客:http://blog.rdiframework.net/
特別說明,框架相關的技術文章請以官方網站為準,歡迎大家收藏!
RDIFramework.NET框架由海南國思軟件科技有限公司專業(yè)團隊長期打造、一直在更新、一直在升級,請放心使用!
歡迎關注RDIFramework.NET框架官方微信公眾號(微信號:guosisoft),及時了解最新動態(tài)。
使用微信掃描二維碼立即關注

作者:
RDIF
出處:
http://www.rzrgm.cn/huyong/
Email:
406590790@qq.com
QQ:
406590790
微信:
13005007127(同手機號)
框架官網:
http://www.guosisoft.com/
http://www.rdiframework.net/
框架其他博客:
http://blog.csdn.net/chinahuyong
http://www.rzrgm.cn/huyong
國思RDIF開發(fā)框架
,
給用戶和開發(fā)者最佳的.Net框架平臺方案,為企業(yè)快速構建跨平臺、企業(yè)級的應用提供強大支持。
關于作者:系統(tǒng)架構師、信息系統(tǒng)項目管理師、DBA。專注于微軟平臺項目架構、管理和企業(yè)解決方案,多年項目開發(fā)與管理經驗,曾多次組織并開發(fā)多個大型項目,在面向對象、面向服務以及數(shù)據(jù)庫領域有一定的造詣。現(xiàn)主要從事基于
RDIF
框架的技術開發(fā)、咨詢工作,主要服務于金融、醫(yī)療衛(wèi)生、鐵路、電信、物流、物聯(lián)網、制造、零售等行業(yè)。
如有問題或建議,請多多賜教!
本文版權歸作者和CNBLOGS博客共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,如有問題,可以通過微信、郵箱、QQ等聯(lián)系我,非常感謝。

浙公網安備 33010602011771號