闲来无事,想起自己以前做的一个ASP.NET MVC5的项目,刚好又有台服务器,就想把站点部署上去跑跑。
服务器:Windows Server 2012 R2 Datacenter IIS8
但是最后部署上去发现老是报 未能加载文件或程序集“System.Web.Mvc,Version=5.2.3.0,publicKeyToken="31bf3856ad364e35” 的错误。
于是百度了很多解决方案:
有的说是因为项目引用的 System.Web.Mvc 版本和服务器中的版本或者Web.Config里面的版本不对应,检查了下,很遗憾,完全吻合,这个解决方案无效.....
有的说是因为项目中引用的 System.Web.Mvc 属性中没有将 “复制到本地” 设置为True,检查了下,很遗憾,都是True,这个解决方案无效....
有的说是因为服务器操作系统是64位的,但发布的程序引用了一些32位的ddl,出现了兼容性的问题,得把程序池里面的设置 “启用32位应用程序” 设置为True。尝试设置了下,很遗憾,依旧报错,这个解决方案无效....
试了这么多解决方案都不行,已经接近抓狂状态了。就快准备快放弃来的时候,突然灵光一闪:
把站点物理路径改到站点根目录,不要指向到Views目录。
结果,居然可以了!!!
为了兼容,还是按照大多数的解决方案进行了别的设置,下面总结下:
-
应用程序池配置成经典模式
-
程序池高级设置——启用32位应用程序——设置为True
-
站点物理路径设置为根目录,不要指向到Views目录
给自己记个笔记,也给大家一个参考。