webconfig

IIS7 下使用Intelligencia.UrlRewriter时Session为空问题

烈酒焚心 提交于 2019-11-29 06:53:08
背景 新年伊始,本人的开发环境由Windows Server 2003 +IIS 6 升级成了 Windows Server 2008 +IIS 7,之后便着手参加新项目的开发。 项目开发后期测试过程中,发现了这么一个问题,那就是使用Intelligencia.UrlRewriter做伪静态的时候,ASP.NET Session为空的问题。 ASP.NET 异常截图如下: 后来在网上无意间查到解决方案,就是在system.webServer配置节,设置modules节点的属性 runAllManagedModulesForAllRequests为“true”。知其然必须要知其所以然,否则下次还是会遇上同样的问题。 IIS集成模式和经典模式 1.经典模式 在IIS 6.0中的经典模式中,ASP.NET是一个添加到IIS中的ISAPI。IIS 7.0之所以支持这种模式,是为了做到向后兼容。经典模式缺少许多集成模式才能提供的特性。在经典模式中,IIS拥有自身的管道,这些管道可以通过创建一个ISAPI扩展进行扩充,而ISAPI扩展是以难以开发而著称的。ASP.NET作为一个ISAPI扩展运行,只是IIS管道中的一项组成部分。 2.集成模式 利用集成模式,可以将ASP.NET作为IIS的有机组成部分。现在,IIS服务器的功能被划分为40多个模块,因此也就将IIS和ASP