從 ASP.NET Core 2.1 遷移到 2.2 踩坑總結

官方遷移文檔:https://docs.microsoft.com/zh-cn/aspnet/core/migration/21-to-22?view=aspnetcore-2.2&tabs=visual-studiohtml

 

系統必備

根據官方文檔升級對應工具web

更新目標框架名字對象 (TFM)

就是在項目屬性中修改目標框架爲.Net Core 2.2框架

採用的 IIS 進程內承載模型

右鍵項目選擇編輯XXXX.csproj,在文檔描述的對應位置添加工具

<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>

更新自定義 web.config 文件

若是項目中根目錄中沒有這個文件便可忽略這一步。visual-studio

更新包引用

一樣編輯XXXX.csproj,在文檔描述的對應位置添加ui

<PackageReference Include="Microsoft.AspNetCore.App" />

刪除全部 <PackageReference Include="Microsoft.XXXX" Version="XXX" />spa

好比這些code

  <PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
  <PackageReference Include="Microsoft.AspNetCore.CookiePolicy" Version="2.2.0" />
  <PackageReference Include="Microsoft.AspNetCore.HttpsPolicy" Version="2.2.0" />
  <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
  <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.2.0" />

都須要刪除,由於新版本的Microsoft.AspNetCore.App已經包含這些htm

從新編譯項目時IDE會自動下載對應的引用包對象

更新 Kestrel 配置

這一步是我遇到的最大的坑!!!官網給的Demo我試了有問題,若是原來項目Program類中有UseIISIntegration() ,則須要替換成UseIIS() ,否則會有啓動錯誤。

意外的在ocelot文檔Demo中找到了解決方案!! 

**Note:** When using ASP.NET Core 2.2 and you want to use In-Process hosting, replace **.UseIISIntegration()** with **.UseIIS()**, otherwise you'll get startup errors.

總結

剩下的根據官方文檔根據各自的項目作對應的修改,我本身遇到的兩個問題已經寫在上面了,一是更新包引用,二是更新Kestrel配置

若是還有問題請參考官方文檔 

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

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

 本文連接:http://www.javashuo.com/article/p-zwjypxaf-z.html

相關文章
相關標籤/搜索