最近做了一个网站,使用的是VS2015 Preview版,架构为MVC5框架,系统为Windows 8.1 x64.
开发中一切顺利, 无论是IIS还是IIS Express都OK啊.
结果我就满怀信心的去发布到主机的IIS.
主机为Windows 2008 r2 x64, IIS7.5
发布完成后, 访问网站,报不能列目录的错误.
我一看就懵逼了! 咋好好的mvc路由映射就成了列目录了呢?
于是请教百度大妈, 结果发现了这么一种方法:
在web.config中加上如下的配置:
<system.webServer> <modules runAllManagedModulesForAllRequests="true" /> system.webServer>
然后我就屁颠屁颠的去加上了. 自信满满的刷新浏览器!
尼玛, 这次500错误了...
彻底懵逼了...
心里想着,还是自己搞一搞吧.
第一步,检查主机上的ASP.NET配置.
一看, 妈的, 只有一个.Net Framework 4.5
然后, 安装.Net Framework 4.5.1 和 .Net Framework 4.5.2
第二步, 安装完成后, 进入.Net的安装目录的bin下, 或者打开VS的命令提示符, 执行命令
aspnet_regiis.exe -i 重新注册一下
第三步, 调整IIS设置
开始-->运行 输入 inetmgr, 或者在管理工具中找到 IIS管理器
点击最上边的主机名,找到 "ISAPI和CGI限制", 把.net framework 4.5的限制变为允许, 如图:
然后, 貌似跟这个 KB982678 补丁也有关系, 当时上线匆忙,我忘记记录了. 这个是和.Net Framework 4有关的.
然后重启服务器, 奇迹出现了, 网站正常了.
当然, web.comfig文件也是需要加上那一句话的.
这个问题自己搞了2天,终于搞定,特有成就感.
如果你们还不行, 就给主机打打补丁.
后来我在网站已经正常的时候, 升级了R2的SP1补丁.
感觉还不错.
最后, 如果实在是搞不定了, 还有一个绝招, 安装上一个VS2013.
大不了使用IIS Express, 也很好用的.
好了.就说这么多.