mvc在iis上的部署一些问题
今天,完成了一个在线考试网站的修改,测试、修改,开发的一切全部搞定。可是在部署时候,却引发了一堆的问题,项目做了不少,从asp.net 到mvc3.0的都有经历,可从来没出现过这种问题,于是乎,总结下吧。
1.server2003下的iis6.0系统,服务器访问的系统;
这个按照度娘上的提示,一一部署,推荐查看http://www.cnblogs.com/xiongpq/archive/2011/05/25/2057445.html;
可惜到最后,却还是不能运行;
发扬一不怕苦的精神,逐个排查;
.net FrameWork 4.0安装包已经安装;
ASP.NET MVC 3也已经安装;
版本及dll信息都已按要求设定,why?
看到还有一个asp.net网站站点挂在下面,会不会是应用程序池的问题了?果断查看。
我去,两个网站共用一个程序池,打开另外一个,也无法运行了!!!
果断添加并分列单独的应用程序池,解决了。。。
2.win7系统下iis7.5的系统,备份的系统,错误如下:
HTTP 错误 403.14 - Forbidden
Web 服务器被配置为不列出此目录的内容。
要点:不是所有的错误都是目录权限的设置失误。

mvc的dll已经引用,按照给出的方法继续设置,结果列出了列表,还是不跳转到指定的登录页面。肯定是路由处理问题嘛,继续查找;
view中的页面采用的是Razor语法,mvc只是控制流程,协调并解析成前台的html了。
查看iis6.0下的bin目录,多了很多文件,都是mvc和razor的解析。拷贝至iis7.5的bin目录下,
刷新,还是没有,问题依旧。
还是没有设置上,why?难道是配置文档。。。这会靠谷姐了
managedHandler保护,已经开启了匿名访问啊。。。一条配置文献出现
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
<directoryBrowse enabled="false" />
</system.webServer>
要设置<modules>节的值为true, 而目录浏览启用或禁用其实都没影响的。
出现了久违的login,皇天不负有心人。。。
往下研究,这个设置到底是什么作用了额,什么时候用了。且看下面:
含义:<modules runAllManagedModulesForAllRequests=“true” /> Meaning
不用:Don't use runAllManagedModulesForAllRequests="true" when getting your MVC routing to work
主要是在请求时将url请求转换为对应的解析文件,IIS请求管道(request pipeline)正式实现其作用。
ps:思路决定出路。做完了开发,换个角度,部署也有助于理解系统的运行。
浙公网安备 33010602011771号