今天自己開發了一個訂機票的微信公眾號,功能基本已經完成,然後想部署到伺服器實際測試下。結果部署上去出現各種問題。先安裝asp.net core模塊,然後發現資料庫並不像在開發時一樣,執行ef的命令行語句就可以了。可以到輸出目錄找到對應的sql語句,到伺服器上執行一下。 後來部署上去以後,發現很多對應... ...
今天自己開發了一個訂機票的微信公眾號,功能基本已經完成,然後想部署到伺服器實際測試下。結果部署上去出現各種問題。先安裝asp.net core模塊,然後發現資料庫並不像在開發時一樣,執行ef的命令行語句就可以了。可以到輸出目錄找到對應的sql語句,到伺服器上執行一下。
後來部署上去以後,發現很多對應控制器的action打開是404,感覺很奇怪,在web.config裡面把日誌輸出打開。stdoutLogEnabled="false"改為true。發現有錯誤,提示OFFSET 附近有語法錯誤。出現這個錯誤的原因是我的開發環境是sqlserver2017,而部署的伺服器用的是sqlserver2008,在2008版本之前的sql是meiyou 這種語法的。
解決方法:在startup.cs中的連接語句中添加UseRowNumberForPaging
services.AddDbContext<ApplicationDbContext>(optionsAction => optionsAction.UseSqlServer( Configuration["ConnectionStrings:DefaultConnection"], b => b.UseRowNumberForPaging()));