.NET core2.0 發布至IIS中


 

 

.NET CORE和asp.net 發布時不太一樣,ASP.NET Core不再是由IIS工作進程(w3wp.exe)托管,而是使用自托管Web服務器(Kestrel)運行,IIS則是作為反向代理的角色轉發請求到Kestrel不同端口的ASP.NET Core程序中,隨后就將接收到的請求推送至中間件管道中去,處理完你的請求和相關業務邏輯之后再將HTTP響應數據重新回寫到IIS中,最終轉達到不同的客戶端(瀏覽器,APP,客戶端等)。而配置文件和過程都會由些許調整,中間最重要的角色便是AspNetCoreModule,它是其中一個的IIS模塊,請求進入到IIS之后便立即由它轉發,並迅速重定向到ASP.NET Core項目中,這時候我們無需設置應用程序池來托管我們的代碼,它只負責轉發請求而已.所以發布時最重要的還是看我們的AspNetCoreModule是否存在

 

進入這個模塊就可以看到你是否安裝了托管捆綁包AspNetCoreModule,沒有的話可以點擊這里進行下載,

如果還是沒有找到或者不知道怎樣下載.在我的百度網盤中下載安裝就行了,密碼:nrt2

安裝好了之后就是這個樣子

 

 接下來和asp.net 發布時一樣,新建一個網站就行了,為了方便演示,名稱這里用DotNetCoreDemo,路徑用一個方便尋找的路徑

 

接着就是重點了,應用程序池配置稍微不太一樣,.NET CLR版本選擇無托管代碼,托管管道模式選擇集成

 

 

 好了,准備工作完成了,接下來就是文件的發布了,發布文件有兩種方式,可以通過命令發布,也可以通過VS進行發布

 通過CMD找到你的文件所在的路徑,這里就簡單通過命令創建一個.net core2.0 的MVC的程序DotNetCoreDemo

創建命令: dotnet new mvc

       

  

 

   接着通過命令dotnet publish進行發布( 在項目的目錄路徑),如果用這個命令他會默認發布在bin文件的Debug中

 

 

這個不是我們想要的,我們必須發布到指定路徑,剛才我們IIS發布選擇的物理路徑路徑是在  E:\發布\DotNetCoreDemo  這里所以,我們發布的時候必須指定路勁

 命令: dotnet publish -o 路徑

這里就是 dotnet publish -o E:\發布\DotNetCoreDemo

好了現在就發布好了

 

通過VS進行發布:

  這個就和以前的ASP.NET 發布差不多了,我現在用的是VS2017,發布的時候直接選擇文件夾就可以了,路徑就選擇IIS配置的物理路徑

  

 

終於完成了,來看一下最后的成果

 

 

PS:

AspNetCoreModule一定和NET CORE 版本相對應,我這里用的..NET CORE2.0 ,所以捆綁程序包(.NET Core Windows Server Hosting)也用的2.0,如果版本不對應則會報錯502.5的錯誤

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM