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