完美解决.net2.0和.net4.0在同一个iis中共同运行
前几天终于把项目做好了,开始部署到服务器上,问题又是一大堆,遇到的第一个问题是数据库不兼容,幸好我的数据库做的时候用脚本键的表改起来还是挺快的。不兼容的原因是SQL2008中的新属性Date在数据库中SQL2005不兼容。
接着开始部署iis了,一看服务器上竟然没有装.net 4.0 framework框架,(真是悲剧,开发之前我问过负责人说是sql2008,vs2010),然后把.net 4.0 framework装好,然后把iis中新建一个网站,吧目录指到网站的目录,在吧iis框架选为4.0,网站重启完了,在配置SqlConnection.config文件(我把数据库连接单独出来了),吧数据库连接好了,我从数据库中建立了一个单独的数据管理人员,对此用户进行了相应的权限的设置。一切就绪。
开始成功运行了网站,当时还是有一些激动的,毕竟都是吧自己电脑作为服务器,从没有从服务器上部署过。
悲剧的在后面,第二天让那些客户测试,结果服务器拒绝了,真的很悲剧,看了一下系统的windows日志,知道了错误的原因。
错误的原因是因为这个服务器上既有.net2.0的项目,而我的项目是.net4.0的,虽然.net4.0可以兼容.net2.0,但是为什么会出现这个问题呢?
带着问题,我开始了寻找答案,终于找了一篇文章说,重新建立一个新的应用池,然后这个网站放在这个应用池中。
具体的操作是打开iis(这里以windows server 2003的iis6.0为例),在左侧找到一个应用程序池,然后新建一个应用程序池,就ok,看到这里,我突然想起来了看过一篇asp.net运行原理的文章,网站是在一个一个池中的(本来是有图片的,现在暂时找不到了),然后把.net4.0的网站指向这个池(你自己的网站右击属性,在跳出的对话框中选择主目录,在最后的位子有个应用池选择相应的应用池),重启一下iis,问题解决。还来又出现了一个权限的问题,在应用池中把应用程序池标识选为预定义账户的本地系统。
在此打开网站,完美解决!
文章献给那些和我遇到同样问题的博友们!
Stallman 先生认为最大的快乐是让自己发展的软件让大家来使用了!