欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

从 ASP.NET Core 2.1 迁移到 2.2 踩坑总结

程序员文章站 2022-04-09 09:18:00
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() ,不然会有启动错误。

意外的在文档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配置

如果还有问题请参考官方文档