在.net framework程序中承载asp.net core

Asp.net core在写REST服务上比之前的老版本要方便不少,我已经逐渐将ASP.Net WebAPI的REST服务往Asp .net core上迁移了。然而,在迁移的过程中,还是遇到了一些问题的。

由于Asp.net的架构如下图所示:

  

它的底层支撑库是.net standard,而.net framework的库和.net standard并不对等:

  • 一些功能库在.net standard中没有(如图像处理等)
  • 一些方法调用要改,迁移的工作量较大
  • 一些依赖的第三方库没有.net standard的版本
  • 一些库无法移植(如使用了Pinvoke等)

对于这些比较难迁移的服务,之前还是将其维持不变,在新服务中通过跳转的方式封装了它们。然而,今天在新建.net core web程序时发现居然还有.Net framework的选项

  

选中它新建项目试了一下,还真是在.net framework上承载的asp.net core程序。跑起来也没有任何问题,也可以引用其它的.net framework类库。看了一下,和.net core的版本相比,它引用了如下两个.net standard库:

  

也就是说,微软用.net standard将.net core中相应的库给重写了,asp.net core程序以后也可以在.net framework上快乐的玩耍了。

最后,附一个在使用的过程中遇到的问题:

用Swashbuckle.AspNetCore添加Swagger UI的时候提示出异常:System.MissingMethodException: Method not found: 'Void Microsoft.Net.Http.Headers.EntityTagHeaderValue..ctor(System.String)'.

在Github上找到了有人提交的Issue,参考该页面的方法,在Nuget上添加Microsoft.AspNetCore.StaticFiles库即可。这个应该是Swashbuckle库的锅,估计后续版本应该会在Nuget上增加该库的依赖。这里记录一下,以备和我遇到同样问题的朋友查询。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值