在IIS6中,程序池并没有严格区分2.0和4.0。在IIS7和7.5中,.net的2.0和4.0的程序池有明显的区别。
大多数虚拟主机说支持asp.net2.0或是4.0,但并不意味着可以直接运行ASP.NET程序。因为2.0与4.0不能放置在同一个资源池中,所以大多数并没有默认添加。
现在很少有ASP.NET程序再使用asp.net1.1了,所以一般情况下,使用的都是2.0或是3.5 或是4.0。具体的情况,可以查看下web.config,在这个文件中总能找到些蛛丝马迹。
有时候加过了.net,但在打开网页的时候还是显示报错。
这时候注意,看下在报错的下方是否.net版本的提示,有时候没有,并不代表.net没有加上,笔者见过不少人,喜欢开启友好报错,搞得加了之后的报错跟没加.net之前的报错一模一样。一度还怀疑自己少操作了什么。
在IIS的asp.net选项中有两个配置项,分别点进去,里面有自定义错误,把自定义错误设置为off,这样真正的错误就会浮出水面了。无非就是数据库问题,或是类不全,或者说对象在引用之前没定义。程序问题,一般根据对应的地方就能找到关键的地方。
注意,偶尔如果显示乱码,中文的乱码,可能是程序池没调对,因为不同的版本放在同一个资源池会出现所料不及的报错。就算有时候,的确是放在对应版本的池子内,那这里面估计就其它站点因为.net版本不一致在作怪。
有时候修改过.net版本之后还是有报错,那么再看下对应空间的network service有没有加上。总的来说,一般就是权限,对应空间的权限。
资源池,混在一起,有时候虽然刚开始可能也能用,一旦运行时间过长,就会出问题。还一提的就是有时候在下层目录中也存在web.config就必须要设置虚拟目录了。一个网站默认只对应一个web.config。
最后,有时候会有静态映射的存在,也会报出一些奇怪的错,总之大体的方向和思路就是按上面的方法,其它的就要看个人的经验和感觉了。