RoadFlow工作流引擎從.NET Core2.2升級到3.0遇到了一些問題及解決方式這里記錄一下。
1、DLL項目框架從2.2選擇到3.0,這個沒什么好說的,沒有問題。重點的WEB層的一些變化。
?
2、將ORM數(shù)據(jù)包升級到最新,MYSQL升級到8.0。
?
?
?
3、WEB項目中路由的不同Startup.cs中:
2.2:
?
? 3.0:
?
?4、SignalR的不同:
2.2:
?
? 3.0統(tǒng)一加到的路由設(shè)置中:
?
?5、3.0中輸出都采用了異步,默認(rèn)沒有開啟同步。也不建議開啟,改代碼采用異步輸出。
?
?6、這是遇到最大的坑,找了好久才找到原因。
?
? 這是不要設(shè)置,設(shè)置了一遇到Request.Form["keyt"]就會報錯,不管post的內(nèi)容多大都會報錯,并且是偶發(fā)性的,時好時壞。注釋掉這里就好了。
報錯內(nèi)容如下:
?
?
System.IO.InvalidDataException:“Form key length limit 2147483647 or value
length limit 2147483647 exceeded.”
7、將發(fā)布設(shè)置為發(fā)布單文件,這樣就方便多了,直接雙擊RoadFlow.Mvc.exe運行,自帶core3.0運行時,不需要安裝運行環(huán)境。
?
?
發(fā)布后的目錄也清爽了許多:
?
? 這只適應(yīng)演示或不經(jīng)常改動的程序發(fā)布。一但改過就要停止EXE執(zhí)行再更新。所以生產(chǎn)項目還是建議以不編譯視圖的方式發(fā)布,這樣改了視圖內(nèi)容可以及時更新。
以不編譯視圖的方式發(fā)布:
在項目上雙擊設(shè)置:
?
? 并且引用包:Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
?
?
熱門工具 換一換