500.30 ANCM In-Process Handler Load Failure ...
系統必備
根據官方文檔升級對應工具
更新目標框架名字對象 (TFM)
就是在項目屬性中修改目標框架為.Net Core 2.2
採用的 IIS 進程內承載模型
右鍵項目選擇編輯XXXX.csproj,在文檔描述的對應位置添加
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
更新自定義 web.config 文件
如果項目中根目錄中沒有這個文件即可忽略這一步。
更新包引用
同樣編輯XXXX.csproj,在文檔描述的對應位置添加
<PackageReference Include="Microsoft.AspNetCore.App" />
刪除所有 <PackageReference Include="Microsoft.XXXX" Version="XXX" />
比如這些
<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已經包含這些
重新編譯項目時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://www.cnblogs.com/smartstar/p/10898116.html