RoadFlow工做流引擎从.NET Core2.2升级到3.0遇到了一些问题及解决方式这里记录一下。框架
一、DLL项目框架从2.2选择到3.0,这个没什么好说的,没有问题。重点的WEB层的一些变化。异步
二、将ORM数据包升级到最新,MYSQL升级到8.0。post
三、WEB项目中路由的不一样Startup.cs中:orm
2.2:blog
3.0:路由
四、SignalR的不一样:同步
2.2:工作流
3.0统一加到的路由设置中:it
五、3.0中输出都采用了异步,默认没有开启同步。也不建议开启,改代码采用异步输出。io
六、这是遇到最大的坑,找了很久才找到缘由。
这是不要设置,设置了一遇到Request.Form["keyt"]就会报错,无论post的内容多大都会报错,而且是偶发性的,时好时坏。注释掉这里就行了。
报错内容以下:
System.IO.InvalidDataException:“Form key length limit 2147483647 or value length limit 2147483647 exceeded.”
七、将发布设置为发布单文件,这样就方便多了,直接双击RoadFlow.Mvc.exe运行,自带core3.0运行时,不须要安装运行环境。
发布后的目录也清爽了许多:
这只适应演示或不常常改动的程序发布。一但改过就要中止EXE执行再更新。因此生产项目仍是建议以不编译视图的方式发布,这样改了视图内容能够及时更新。
以不编译视图的方式发布:
在项目上双击设置:
而且引用包:Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation