IIS7上部署Asp.Net4.0

vs2010开发环境中一切运行正常,结果部署到IIS7上之后,首先遇到下面这个问题:api

我肯定服务器上的asp.net4.0 已经启用了,对应的网站应用程序池也切换到了4.0,但仍是这样!服务器

到msdn论坛上发现也有人遇到相似问题,解决办法:先检测机器上是否安装了4.0正式版之前的beta或rc版,.net framework4 的正式版本号为4.0.30319,若是之前安装过旧版本的4.0框架(如上图中的v4.0.30128),请先在命令行下输入 :C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -i 从新将.net4正式版注册到IIS中app

注:若是服务器为64位系统,.net会同步安装64位的 framework,若是是32位的系统则没有Framework64这个目录,这个运行完之后,检查IIS中应用程序池的版本号是否为正式版本号。框架

这样处理完了之后,网站已经能跑起来了,可是又遇到了第二个问题:由于公司的项目应用了一些之前的第三方组件,应用程序池没法以Integrated集成模式运行(不兼容),因此只能选Classic经典模式,实践后发现经典模式下url路由功能没法使用:又百度一圈后,找到了解决办法:在网站的功能(Feature)视图下,找到Handler Mappings(Handler映射)并双击添加一个Wildcard Script. Map即:将全部后缀文件的请求,所有交由Framework64\v4.0.30319\aspnet_isapi.dll来处理asp.net

ok,asp.net4.0的路由功能总算在经典模式下运行正常了(注:若是是集成模式,是没有该问题的)网站

相关文章
相关标签/搜索