Asp.net4.0 站点,其中有“Silverlight”项目在运行。
IIS7.5下的.Net4.0对应的四种应用程序池:
Default AppPool
Classic .Net AppPool
Asp.Net 4.0
Asp.Net 4.0 Classic
我们现在用的都是“Asp.Net 4.0”应用程序池, 站点可以正常运行,切换为其它三个程序池站点就会报错。
错误信息如下:
问题: 这四种应用程序池分别有什么作用,它们直接又有什么区别和不同呢???
------解决方案--------------------------------------------------------
错误本身提供给我们的信息是isapi and cgi restrictions设置block了asp.net。至于block的原因可能是阿application pool启动了32位,可能是application pool用了不被允许的.net框架版本,而所有这一切的block的设置都是服务器层isapi and cgi restriction设置中设置的。
------解决方案--------------------------------------------------------
应用程序池中有.net framework的版本选择,及托管管道模式的选择。请查看这两个信息你设置的四个应用程序池是否有何不同。
------解决方案--------------------------------------------------------
你其它程序池.net版本和托管管道模式,设置正确了没
------解决方案--------------------------------------------------------
就是在应用程序池里设置的,有2个选项,分别是经典模式(classic pipeline)和集成模式(integrated pipeline)。经典模式沿用了IIS6的处理方式,而集成模式把asp.net的管道模式集成到了IIS管道中,使IIS上所有的请求都能享用asp.net的功能。就你的问题来看,个人认为和管道模式有关的可能性不大,毕竟你碰到的错误是404.2,首先你要检查的是你的应用程序池是跑在.net 2.0还是4.0下的,其次是应用程序池的高级设置里,启用32位是怎么设置的,知道了这2点再去服务器层isapi和cgi限制功能中去确认对应的.net isapi filter是不是被禁用了,如果是的话启用后就能解决这个错误。