把VS2010开发的网站.net4.0部署到Windows Server 2003的服务器上去, Windows Server 2003操作系统自带的为IIS 6.0,IIS 6.0一般只支持.NET 2.0的程序,这就需要配置服务器上的IIS 6.0达到支持.NET 4.0的目的。在网上查找了一些文章,以供大家查阅和参考,主要有以下几个步骤:
一、升级.net framework至4.0
如果服务器已经安装了VS2010,则其中已经包含安装了.net 4.0 framework,否则就需要另外安装.net 4.0 framework,微软官方下载地址为http://www.microsoft.com/zh-cn/download/details.aspx?id=17718,如果你是开发系统当然没问题,老早就装4.0 framework了,如果是服务器上这个时候我们就得整理一下IIS6了 。
二、配置IIS 6.0
按照常规操作把网站放到IIS6.0虚拟目录下,但是会发现还是访问不了,这时还需要如下配置:
1.允许web服务扩展
找到web服务扩展,找到ASP.NET v4.0.30319项,确认它是允许的,如果是禁用的就要开启它,默认情况下就是禁止的,当时自己就是因为这部分没设置好才折腾了大半天,如下图所示:
2.选择ASP.NET版本
打开IIS 6.0,右击新建的网站→属性→ASP.NET选项卡,.NET版本选择4.0.30319,如下所示:
3.应用程序映射(此步是否需要设置有疑问)
右击新建的网站→属性→主目录→配置→通配符插入,可执行文件选c:/windows/microsoft.net/framework/v4.0.30319/aspnet_isapi.dll,去掉"确认文件存在",点击确定,如下图所示:
三、可能出现的问题 (友情提示:这个问题的注意)
如上图所示,出现“服务器应用程序不可用”的错误提示,查看系统应用程序日志如下:
错误提示为:It is not possible to run two different versions of ASP.NET in the same IIS process:IIS
解决办法:
针对不同的Framework应用程序,建立不同的ApplicationPool。不同版本的站点(包括虚拟目录,因为它也要用Application Pool),采用不同的Application Pool,即新建一个用于.net4.0以Application Pool为模板的应用程序池.Net4.0,再修改站点的属性—>应用程序池为.Net4.0就OK了。
其实我们要是服务器上装的IIS7.5或者8.0就不用这么麻烦了,每次创建一个网站时都会生成一个单一的应用程序池。毕竟服务器上好多还在用IIS6.0,不过还是有解决的办法。