首页 > 代码库 > MVC4在IIS6上部署遇到的问题
MVC4在IIS6上部署遇到的问题
最近的一个项目结束了,花的时间半个月左右吧。。。。。
开发环境 win7+VS2012+MVC4(.net 4.0)+SQL SERVER 2008
部署环境 windows server 2003 + IIS6
注:我用的.net framework版本是4.0的,而不是4.5的。在后面我会说明为什么。
开发前对方说的是他们的服务器是windows server 2008R2 的,所以我才用了MVC4,想想在IIS7上部署MVC4是一件多么简单的事。
做完去到之后才发现是03的,真是坑啊!不吐槽了,继续重点。。。。
开发的过程就不描述了,重点只说MVC4的网站以及微软自己带的Reportview在IIS6中部署的注意事项
其中,在windows server 2003服务器中需要安装的东西可以参见以下的博客
http://blog.csdn.net/g2321514568/article/details/21275265
其中的mvc3我是没有安装的,因为没有用到。
而具体的IIS6.0的相应配置可以参考以下博客
http://www.cnblogs.com/anny-1980/articles/2616657.html
其中最常遇到的问题就是忘记将"Web服务扩展"中的"ASP.NET v4.0.30319" 的服务必须为“允许”,以及修改生成目录的权限。
配置到上面的步骤,基于.net framework 4.0的MVC4程序已经能够正常运行在windows server 2003 中了。
可是为什么我不选择.net framework 4.5呢?当初也找了很多资料,貌似找的资料大部分都是说.net 4.5不支持windows server 2003,然后我也进行了测试
开发环境: win7+VS2012+MVC4(.net 4.5)
部署环境: 虚拟机 + windows server 2003 + IIS6
新建一个基本的MVC4(.net 4.5)项目,直接发布,然后部署,发现网站无法正常运行。。。。。
于是,手动修改项目的.net framework的版本为4.0
然后就出现了以下的错误
但我记得很清楚,项目中没有用到这些程序集,所以就去找4.5和4.0的程序集,发现4.0下面压根就没有出现错误的那个程序集,可是我已经将项目的framework
版本降为4.0了,应该是不会出现这个问题才对啊!对这个问题有些疑惑(我是先新建的空白解决方案也是4.5的,可能是这里的原因)。但是如果是重新建一个
.net 4.0的MVC4项目,就能正常运行,不会出现上述错误。手动将版本降低,我觉得是很麻烦,也不愿意这样去浪费时间,也正是由于这个原因,我才直接将
项目的版本选为是4.0的,而不是4.5的(基于windows server 2003),如果是windows server 2008及以上版本,这个都不算是问题。这也只是我个人的观点
如果发现我的错误,请各位园友及时指出。
最后要说的就是reportviewer(vs2012中的11.0的版本)在windows server 2003的部署问题。
由于我是在VS2012中使用的reportviewer这个报表,在测试项目中添加了webform窗体以及报表文件
发现项目发布后的竟然不包含报表文件!!!
这个问题的解决方案就是修改报表文件的属性。。
当修改了报表文件的Build Action属性之后
再次发布就可以看到相应的报表文件了
对于这个报表,我也是只用了几次,真正部署的也就这一次。找到的大部分资料也只是8.0、9.0、10.0这三个版本,关于11.0这个版本的资料真的很少,找的资料也没怎么说清楚
都是概括的说了一些,并不具体,普遍说的都是只需要下面的3个dll放在发布过后的bin目录就可以正常运行
于是乎,将这几个dll复制到生成的bin目录下就去运行
结果还是不行,出现如下的错误:
最终经过多方寻找,也没能解决这个问题的方案,然后我就根据这个错误,去找Microsoft.SqlServer.Types.dll这个鬼程序集,找的我泪流满面,
找到之后,将它和之前的3个程序集一起添加到发布之后的bin目录下,,再次浏览该网站即可看到报表了(这里就不截正常运行的图片了。。)
这里用的是dll的方式,网上还有一种方式是在服务器直接安装reportviewer.exe这个程序,这个我还没有尝试过,也不是很清楚是否能成功。
写完才发现,这个报表的问题和MVC4的部署应该是两个主题的才对。。。由于项目中都用到,所以就放在这一次性写出来了,不再分开来写了
可能有些地方描述的不是很清楚,还请各位园友多多见谅。
相关下载:
报表中用到的5个程序集的下载地址:
http://pan.baidu.com/s/1eQnaKKi
MVC4在IIS6上部署遇到的问题