IIS部署ASP.NET5的實現(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 版本上,感覺這個版本使用的公司還不少。
安裝ASP.NET Core托管捆綁包
安裝的文件應(yīng)該和項目對應(yīng)的版本相同,現(xiàn)在我項目使用的.net版本是5,那么我應(yīng)該也用5的,下載地址是:此處
安裝其他版本的請參考官網(wǎng)地址:.NET Core托管捆綁包
捆綁包可安裝 .NET Core 運行時、.NET Core 庫和 ASP.NET Core 模塊。 該模塊允許 ASP.NET Core 應(yīng)用在 IIS 運行。
安裝后查看應(yīng)用程序目錄
發(fā)布項目
新建一個net5 WebAPI程序,當(dāng)前程序主要包含一個用戶控制器(包含用戶信息的增刪改查)并且連接MySQL數(shù)據(jù)庫。
項目結(jié)構(gòu)如下
源碼地址:https://gitee.com/AZRNG/my-example 需要自取
通過vs2019發(fā)布我們的項目,然后將發(fā)布后的項目拷貝到要部署的服務(wù)器上面。
發(fā)布后如下
為了正確設(shè)置 ASP.NET Core 模塊,web.config 文件必須存在于已部署應(yīng)用的根路徑中。里面可以設(shè)置一些環(huán)境、日志等配置。
托管方式
進程內(nèi)托管(IIS HTTP 服務(wù)器)
自 ASP.NET Core 3.0 起,默認情況下已為部署到 IIS 的所有應(yīng)用啟用進程內(nèi)托管。
進程內(nèi)托管在與其 IIS 工作進程相同的進程中運行 ASP.NET Core 應(yīng)用。 進程內(nèi)承載相較進程外承載提供更優(yōu)的性能,因為請求并不通過環(huán)回適配器進行代理,環(huán)回適配器是一個網(wǎng)絡(luò)接口,用于將傳出的網(wǎng)絡(luò)流量返回給同一計算機。
該圖說明了 IIS、ASP.NET Core 模塊和進程內(nèi)托管的應(yīng)用之間的關(guān)系
顯式配置進行內(nèi)托管,需要在項目文件(.csproj)中增加如下配置
<PropertyGroup> <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel> </PropertyGroup>
進程外托管(Kestrel服務(wù)器)
由于運行 ASP.NET Core 進程與 IIS 工作進程分開,所以ASP.NET Core 模塊會負責(zé)進程管理。
該圖說明了 IIS、ASP.NET Core 模塊和進程外托管的應(yīng)用之間的關(guān)系
進程外托管配置,在項目文件 ( .csproj) 中將
<PropertyGroup> <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel> </PropertyGroup>
關(guān)于兩種托管方式的差異:此處
部署項目
將項目進行發(fā)布,然后拷貝到我們的服務(wù)器一個文件夾內(nèi)。
打開IIS添加網(wǎng)站,選擇物理路徑為我們項目文件
修改應(yīng)用程序池為無托管模式
啟動程序轉(zhuǎn)到swagger頁面
因為當(dāng)前我并沒有連接數(shù)據(jù)庫,直接調(diào)用接口應(yīng)該報錯,我們看下錯誤日志。啟動輸出日志
說明我們項目已經(jīng)部署成功了
如果出現(xiàn)了錯誤可以查看點此處查看常見錯誤解決方案:此處
題外話:當(dāng)初部署2.1版本時候,windows server 2012r2需要打好幾個補丁,并且需要重啟多次,沒想到這次安裝net5這么順利(服務(wù)器是從朋友那借的,我自己的是linux),如果你所在公司需要部署.net,還是推薦linux進行部署。
參考文檔
https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/?view=aspnetcore-5.0
到此這篇關(guān)于IIS部署.Net5的實現(xiàn)步驟的文章就介紹到這了,更多相關(guān)IIS部署.Net5 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談ASP.NET Core中間件實現(xiàn)分布式 Session
這篇文章主要介紹了淺談ASP.NET Core中間件實現(xiàn)分布式 Session,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11ASP.NET?Core中的策略授權(quán)和ABP授權(quán)
這篇文章介紹了ASP.NET?Core中的策略授權(quán)和ABP授權(quán),文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02ASP.NET Core使用Log4net實現(xiàn)日志記錄功能
這篇文章介紹了ASP.NET Core使用Log4net實現(xiàn)日志記錄功能的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03創(chuàng)建第一個ASP.NET應(yīng)用程序(第1節(jié))
本文通過創(chuàng)建第一個ASP.NET應(yīng)用程序,了解.net代碼后置技術(shù)以及事件驅(qū)動機制和web頁面設(shè)計中的基本控件使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下2015-08-08asp.net core為IHttpClientFactory添加動態(tài)命名配置
某些時候我們需要為HttpClient動態(tài)配置一些東西, 例如證書等, 例如服務(wù)是一個回調(diào)服務(wù), 而被回調(diào)方采用了自定義的https(即自定義證書),本文就將講述如何實現(xiàn)這種需求2021-06-06Asp.net Core 1.1 升級后操作mysql出錯的解決辦法
這篇文章主要介紹了Asp.net Core 1.1 升級后操作mysql出錯的解決辦法,需要的朋友可以參考下2016-12-12