最近将自己负责的一个核心接口系统从.Net Framework迁移到了.Net Core。
整体过程,从业务层面说一般般吧(整体还好但还是搞的业务有感,没出严重故障)但是技术层面上感觉其实并没有达到要求,不过预期也是应该不会那么顺利,接下来可能还需要几个小Fix来处理各种奇奇怪怪的问题。
回顾下迁移时候遇到的若干个坑,希望对后续有此类操作的人所有帮助。
1.NetCore下的路由行为和Web Api的不一致
我们回顾下在Web Api里时候的一个路由定义
这个配置下可以让
Get RootUrl/123 和 Get RootUrl?id=123 同时映射到 GetThirdPartyChannel方法里。
但是,假如在不做改动前提下直接将这个Controller定义变为Core的话,Get RootUrl?id=123 这个路由将无法正常运作 (而 Get RootUrl/123 则依然可以正常运行)。
原因是在AspNetCore下他发现了[Route(“{Id}”)]就会认为Id是Path的一部分,然后相当于隐式给id这个参数默认了[FromPath]