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