在IIS上部署ASP.NET Core項(xiàng)目的圖文方法
概述
與ASP.NET時(shí)代不同,ASP.NET Core不再是由IIS工作進(jìn)程(w3wp.exe)托管,而是使用自托管Web服務(wù)器(Kestrel)運(yùn)行,IIS則是作為反向代理的角色轉(zhuǎn)發(fā)請(qǐng)求到Kestrel不同端口的ASP.NET Core程序中,隨后就將接收到的請(qǐng)求推送至中間件管道中去,處理完你的請(qǐng)求和相關(guān)業(yè)務(wù)邏輯之后再將HTTP響應(yīng)數(shù)據(jù)重新回寫(xiě)到IIS中,最終轉(zhuǎn)達(dá)到不同的客戶端(瀏覽器,APP,客戶端等)。而配置文件和過(guò)程都會(huì)由些許調(diào)整,中間最重要的角色便是AspNetCoreModule,它是其中一個(gè)的IIS模塊,請(qǐng)求進(jìn)入到IIS之后便立即由它轉(zhuǎn)發(fā),并迅速重定向到ASP.NET Core項(xiàng)目中,所以這時(shí)候我們無(wú)需設(shè)置應(yīng)用程序池來(lái)托管我們的代碼,它只負(fù)責(zé)轉(zhuǎn)發(fā)請(qǐng)求而已。
部署之前要確保你的IIS上已經(jīng)安裝了AspNetCoreModule托管模塊,如果沒(méi)有的話,點(diǎn)擊這里進(jìn)行下載并安裝
一、安裝IIS
1、在控制面板→程序→啟用或關(guān)閉Windows功能→勾選Internet Information Services以及Web管理工具下的IIS管理控制臺(tái)
二、發(fā)布項(xiàng)目
1、發(fā)布我們上一篇建好的ASP.NET Core API項(xiàng)目,然后選擇IIS,新建一項(xiàng)發(fā)布配置
2、發(fā)布方法選擇文件系統(tǒng),然后設(shè)置一個(gè)發(fā)布路徑
3、配置文件可以根據(jù)你線上、線下的環(huán)境進(jìn)行選擇,因?yàn)槭腔?NET Core,所以目標(biāo)框架為netcoreapp1.1,然后保存發(fā)布即可
4、當(dāng)然了,你還可以基于CLI的Publish命令進(jìn)行發(fā)布,只需切換到Light.API根目錄下,輸入以下命令即可
dotnet publish --framework netcoreapp1.1 --output "E:\Publish" --configuration Release
framework表示目標(biāo)框架,output表示要發(fā)布到的目錄文件夾,configuration表示配置文件,等同于和上面我們通過(guò)管理器來(lái)發(fā)布的操作,如圖:
三、在IIS中添加網(wǎng)站
1、添加一個(gè)網(wǎng)站,設(shè)置一下名稱,并將路徑指向你剛才發(fā)布的文件夾,然后啟動(dòng)網(wǎng)站即可
2、設(shè)置應(yīng)用程序池的.NET CLR版本為“無(wú)托管代碼”,因?yàn)閯偛乓舱f(shuō)了,IIS是作為一個(gè)反向代理的角色,并不需要它來(lái)托管代碼
3、OK,大功告成,瀏覽一下我們的網(wǎng)站。
此時(shí)我的內(nèi)心是崩潰的,沒(méi)有任何有用的提示信息,看來(lái)只能自己動(dòng)手查看應(yīng)用程序的運(yùn)行日志了
4、設(shè)置IIS的日志記錄方式為日志文件和ETW事件
5、重新訪問(wèn)網(wǎng)站,然后打開(kāi)Windows應(yīng)用程序日志,你會(huì)看到這樣一條信息。意思是說(shuō)你的應(yīng)用程序已經(jīng)由PID為3236的進(jìn)程啟動(dòng),并且在25636的端口上監(jiān)聽(tīng)著。
我打開(kāi)任務(wù)管理器查看了一下,說(shuō)的很對(duì)。應(yīng)該是一切正常才對(duì)啊,那為啥訪問(wèn)網(wǎng)站是404呢。
糾結(jié)了半天,原來(lái)是因?yàn)榫W(wǎng)站沒(méi)有自動(dòng)重定向到/swagger/ui頁(yè)面,重新訪問(wèn):http://192.168.1.105/swagger/ui,你會(huì)看到熟悉的畫(huà)面
6、最后一點(diǎn),其實(shí)你還可以通過(guò)CLI來(lái)運(yùn)行你發(fā)布的程序,切換到你發(fā)布文件夾下,輸入以下命令:
dotnet Light.API.dll
看到這個(gè)提示,那么說(shuō)明你成功了。試著訪問(wèn)一下:http://localhost:5000/swagger/ui
而此時(shí)你再回過(guò)頭來(lái)看任務(wù)管理器,那么就會(huì)又多了一個(gè)dotnet的進(jìn)程
寫(xiě)在最后
至此,整個(gè)IIS的搭建已經(jīng)完成,不知道你是否有所收獲。接下來(lái)不知道把它發(fā)布到Linux上,會(huì)有什么樣的坑。不管怎樣,你的每一步,回過(guò)頭來(lái)看,都是值得的!
相關(guān)文章
在windows中追加/刪除虛擬打印機(jī)實(shí)例教程
這篇文章主要介紹了在windows中追加/刪除虛擬打印機(jī)實(shí)例教程,需要的朋友可以參考下2017-03-03IIS中301重定向跳轉(zhuǎn)web.config規(guī)則和http重定向模塊的實(shí)現(xiàn)教程
301跳轉(zhuǎn)對(duì)于搜索引擎而言,便是告訴搜索引擎:“此url地址已經(jīng)永久的進(jìn)行跳轉(zhuǎn)到了‘XXX’url地址?!倍鴮?duì)于用戶而言,301跳轉(zhuǎn)后的網(wǎng)站,在用戶使用的時(shí)候,輸入舊的地址,會(huì)自動(dòng)跳轉(zhuǎn)到新的地址。在IIS中實(shí)現(xiàn)301重定向有web.config規(guī)則和IIS中的http重定向模塊兩種方式。2023-04-04Windows 2008 IIS7.5中創(chuàng)建獨(dú)立賬號(hào)的FTP站點(diǎn)圖文教程
這篇文章主要介紹了Windows 2008 IIS7.5中創(chuàng)建獨(dú)立賬號(hào)的FTP站點(diǎn)圖文教程,IIS7.5的FTP功能已經(jīng)非常強(qiáng)大了,需要的朋友可以參考下2014-08-08windows server2012無(wú)法連接無(wú)線網(wǎng)絡(luò)解決方法(windows無(wú)線連接)
windows server2012無(wú)法連接無(wú)線網(wǎng)絡(luò)解決方法,大家參考一下吧2013-12-12Windows Server 2019中NAT服務(wù)的安裝、配置與管理
NAT是IETE標(biāo)準(zhǔn),它允許一個(gè)組織能以一個(gè)地址出現(xiàn)在互聯(lián)網(wǎng)中,本文主要介紹了Windows Server 2019中NAT服務(wù)的安裝、配置與管理,具有一定參考價(jià)值,感興趣的可以了解一下2024-05-05Windows Server 2016 服務(wù)器配置指南之PHP7運(yùn)行環(huán)境搭建方法
這篇文章主要介紹了Windows Server 2016 服務(wù)器配置指南之PHP7運(yùn)行環(huán)境搭建方法,需要的朋友可以參考下2017-08-08