配置Modules和Handlers的时候,根据不同IIS的版本和应用程序池中不同的托管管道模式,在Web.config中也有不同的配置方式。
1.托管管道模式为:集成
为集成模式,配置在Web.config的configuration节点下的<system.webServer>节点下,如下所示
代码语言:javascript复制<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
<system.webServer>
<handlers>
<add verb="*" name="d" path="*.asyn" type="Class1"/>
</handlers>
<modules>
<add name="FullEvents" type="FullEvents"/>
</modules>
</system.webServer>
</configuration>
2.IIS版本,IIS 6.0 及更早版本
这种情况只能在<system.web>下注册节点,如下所示
代码语言:javascript复制<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<httpModules>
<add name="FullEvents" type="FullEvents"/>
</httpModules>
<httpHandlers>
<add verb="*" path="*.asyn" type="Class1" />
</httpHandlers>
</system.web>
</configuration>
说明:我测试的IIS7.5工具,在经典模式下,只能使用第二种配置方法。
注:如果是在经典模式下,访问静态文件,如Html等,将不会进入Modules,在集成下才可进入Modules。其实经典模式我认为,就是把iis的运行环境还原到IIS6.0版本下,在IIS6.0以及之前的工具运行,静态文件都不会执行处理程序的,执行处理程序是在IIS7上才新增的,在MSDN上也有文章明确说明了。