IIS7.0 Integrated mode: asp.net 的modules和handlers从<system.webServer>下的<modules>和<handlers>里读取,以前的<system.web>下的<httpModules>和<httpHandlers>配置节会被忽略,如果设置禁止验证(disabled validation),是不会产生错误的。
IIS7的Application Pools有两种mode,一种是Integrated,一种是classic。如果使用Integrated模式,那么对自定义的 httpModules和httpHandlers就要修改配置文件了,需要将他们转移到<modules>和<hanlders>节里去。
IIS7.0 Classic mode: 与 以上情况是相反的,<modules>和<handlers>会被忽略。
IIS6.0 : 这个大家都不陌生了。
准备好web.config,进行如下配置:
<location path="FolderTest">
<system.web>
<httpHandlers>
<add verb="*" path="*" type="YourNamespace.YourHandler"/>
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
<add name="testyou" verb="*" path="*" type="younamespace.youHandler" resourceType="Unspecified"/>
</handlers>
</system.webServer>
</location>
有几点需要说明:
1.熟悉system.web和system.webServer的朋友一定知道,后者是针对iis7及以上的集成模式的配置项,如果不满足此宿主条件,则IIS会自动忽略此配置,采用前者的配置节点。
2.经过此配置后,iis7及以上的集成模式的站点已经能够处理FolderTest路径下的所有404 Request了。
3.resourceType="Unspecified",是用来处理标示处理所有请求的,包括file and folder等等,如果我们处理的是文件url,则不需要此配置属性。
4.path=”*”,表明这是一个wildcard httphandler。
5.如果我们不是要处理子目录下所有请求,如上文配置中的FolderTest,而是要处理根目录下的所有404请求,则去掉location配置节。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)