從.NET CORE2.2升級到3.0過程及遇到的一些問題
- 2019 年 10 月 21 日
- 筆記
RoadFlow工作流引擎從.NET Core2.2升級到3.0遇到了一些問題及解決方式這裡記錄一下。
1、DLL項目框架從2.2選擇到3.0,這個沒什麼好說的,沒有問題。重點的WEB層的一些變化。
2、將ORM數據包升級到最新,MYSQL升級到8.0。
3、WEB項目中路由的不同Startup.cs中:
2.2:
3.0:
4、SignalR的不同:
2.2:
3.0統一加到的路由設置中:
5、3.0中輸出都採用了非同步,默認沒有開啟同步。也不建議開啟,改程式碼採用非同步輸出。
6、這是遇到最大的坑,找了好久才找到原因。
這是不要設置,設置了一遇到Request.Form[“keyt”]就會報錯,不管post的內容多大都會報錯,並且是偶發性的,時好時壞。注釋掉這裡就好了。
報錯內容如下:
System.IO.InvalidDataException:“Form key length limit 2147483647 or value length limit 2147483647 exceeded.”
7、將發布設置為發布單文件,這樣就方便多了,直接雙擊RoadFlow.Mvc.exe運行,自帶core3.0運行時,不需要安裝運行環境。
發布後的目錄也清爽了許多:
這隻適應演示或不經常改動的程式發布。一但改過就要停止EXE執行再更新。所以生產項目還是建議以不編譯視圖的方式發布,這樣改了視圖內容可以及時更新。
以不編譯視圖的方式發布:
在項目上雙擊設置:
並且引用包:Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation