69pao国产精品视频-久久精品一区二区二三区-精品国产精品亚洲一本大道-99国产综合一区久久

IIS部署ASP.NET5的實(shí)現(xiàn)步驟

iis部署asp.net5的實(shí)現(xiàn)步驟

 

介紹

internet information services (iis) 是一種靈活、安全且可管理的 web 服務(wù)器,用于托管 web 應(yīng)用(包括 asp.net core)。雖然我們的程序可以跨平臺了,不過還是有些服務(wù)是部署在windows服務(wù)器下的,下面我們就從頭開始部署下我們的程序到iis.

本次示例環(huán)境:windows server 2012 r2 、vs2019、mysql、.net5

 

安裝環(huán)境

支持平臺

  • windows 7 或更高版本
  • windows server 2012 r2 或更高版本

本次代碼將安裝在windows server 2012 r2 版本上,感覺這個(gè)版本使用的公司還不少。

 

安裝asp.net core托管捆綁包

安裝的文件應(yīng)該和項(xiàng)目對應(yīng)的版本相同,現(xiàn)在我項(xiàng)目使用的.net版本是5,那么我應(yīng)該也用5的,下載地址是:此處

安裝其他版本的請參考官網(wǎng)地址:.net core托管捆綁包

捆綁包可安裝 .net core 運(yùn)行時(shí)、.net core 庫和 asp.net core 模塊。 該模塊允許 asp.net core 應(yīng)用在 iis 運(yùn)行。

安裝后查看應(yīng)用程序目錄

 

發(fā)布項(xiàng)目

新建一個(gè)net5 webapi程序,當(dāng)前程序主要包含一個(gè)用戶控制器(包含用戶信息的增刪改查)并且連接mysql數(shù)據(jù)庫。

項(xiàng)目結(jié)構(gòu)如下

源碼地址:https://gitee.com/azrng/my-example 需要自取

通過vs2019發(fā)布我們的項(xiàng)目,然后將發(fā)布后的項(xiàng)目拷貝到要部署的服務(wù)器上面。

發(fā)布后如下

為了正確設(shè)置 asp.net core 模塊,web.config 文件必須存在于已部署應(yīng)用的根路徑中。里面可以設(shè)置一些環(huán)境、日志等配置。

 

托管方式

進(jìn)程內(nèi)托管(iis http 服務(wù)器)

自 asp.net core 3.0 起,默認(rèn)情況下已為部署到 iis 的所有應(yīng)用啟用進(jìn)程內(nèi)托管。

進(jìn)程內(nèi)托管在與其 iis 工作進(jìn)程相同的進(jìn)程中運(yùn)行 asp.net core 應(yīng)用。 進(jìn)程內(nèi)承載相較進(jìn)程外承載提供更優(yōu)的性能,因?yàn)檎埱蟛⒉煌ㄟ^環(huán)回適配器進(jìn)行代理,環(huán)回適配器是一個(gè)網(wǎng)絡(luò)接口,用于將傳出的網(wǎng)絡(luò)流量返回給同一計(jì)算機(jī)。

該圖說明了 iis、asp.net core 模塊和進(jìn)程內(nèi)托管的應(yīng)用之間的關(guān)系

顯式配置進(jìn)行內(nèi)托管,需要在項(xiàng)目文件(.csproj)中增加如下配置

<propertygroup>
<aspnetcorehostingmodel>inprocess</aspnetcorehostingmodel>
</propertygroup>

進(jìn)程外托管(kestrel服務(wù)器)

由于運(yùn)行 asp.net core 進(jìn)程與 iis 工作進(jìn)程分開,所以asp.net core 模塊會(huì)負(fù)責(zé)進(jìn)程管理。

該圖說明了 iis、asp.net core 模塊和進(jìn)程外托管的應(yīng)用之間的關(guān)系

進(jìn)程外托管配置,在項(xiàng)目文件 ( .csproj) 中將 屬性的值設(shè)置為 outofprocess

<propertygroup>
<aspnetcorehostingmodel>outofprocess</aspnetcorehostingmodel>
</propertygroup>

關(guān)于兩種托管方式的差異:此處

 

部署項(xiàng)目

將項(xiàng)目進(jìn)行發(fā)布,然后拷貝到我們的服務(wù)器一個(gè)文件夾內(nèi)。

打開iis添加網(wǎng)站,選擇物理路徑為我們項(xiàng)目文件

修改應(yīng)用程序池為無托管模式

啟動(dòng)程序轉(zhuǎn)到swagger頁面

因?yàn)楫?dāng)前我并沒有連接數(shù)據(jù)庫,直接調(diào)用接口應(yīng)該報(bào)錯(cuò),我們看下錯(cuò)誤日志。啟動(dòng)輸出日志

說明我們項(xiàng)目已經(jīng)部署成功了

如果出現(xiàn)了錯(cuò)誤可以查看點(diǎn)此處查看常見錯(cuò)誤解決方案:此處

題外話:當(dāng)初部署2.1版本時(shí)候,windows server 2012r2需要打好幾個(gè)補(bǔ)丁,并且需要重啟多次,沒想到這次安裝net5這么順利(服務(wù)器是從朋友那借的,我自己的是linux),如果你所在公司需要部署.net,還是推薦linux進(jìn)行部署。

 

參考文檔

https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/?view=aspnetcore-5.0

關(guān)于iis部署.net5的實(shí)現(xiàn)步驟的文章就介紹至此,更多相關(guān)iis部署.net5 內(nèi)容請搜索碩編程以前的文章,希望大家多多支持碩編程

下一節(jié):.net core導(dǎo)入千萬級數(shù)據(jù)至mysql數(shù)據(jù)庫的實(shí)現(xiàn)方法

asp.net編程技術(shù)

相關(guān)文章