IIS7+ 设置Modules无效,始终不进管道处理程序

功能需求:

当访问的资源文件(主要是图片)不存在时,通过HttpModule处理程序捕获,然后返回指定的资源文件


功能实现:

编码非常简单,相信大家都会写,就不贴出来献丑了。主要问题是web.config的配置,IIS7+关于HttpModule的配置如下

<pre name="code" class="csharp"><system.webServer>
    <directoryBrowse enabled="true" />
    <validation validateIntegratedModeConfiguration="false" />
    <security>
      <requestFiltering>
        <fileExtensions>
          <add fileExtension=".png" allowed="true" />
        </fileExtensions>
      </requestFiltering>
    </security>
<pre name="code" class="csharp">    <httpErrors errorMode="DetailedLocalOnly"></httpErrors>
<modules> <add type="CommonClass.HttpModule,CommonClass" name="HttpModule" /> </modules> </system.webServer>
 
 

编码、配置完毕,本地测试成功。但当发布到外网服务器上后,死活不进管道处理程序(CommonClass.HttpModule),网上查了很多资料,尝试过很多办法,都未能解决。今天来继续研究,功夫不付苦心人,终于发现症结所在。

<system.webServer>
    <directoryBrowse enabled="true" />
    <validation validateIntegratedModeConfiguration="false" />
    <security>
      <requestFiltering>
        <fileExtensions>
          <add fileExtension=".png" allowed="true" />
        </fileExtensions>
      </requestFiltering>
    </security>
<span style="color:#ffffff;background-color: rgb(153, 0, 0);">  <httpErrors errorMode="DetailedLocalOnly"></httpErrors></span>
    <modules>
      <add type="CommonClass.HttpModule,CommonClass" name="HttpModule" />
    </modules>
  </system.webServer>

没错,就是红色区域标记的这段配置,去年之后就正常了,具体原因就不多解释了,有兴趣的同学了解下httpErrors节点的配置就懂了。


再补充一个可以实现该功能需求的方法,这也是在解决上面那个问题时想出来的一个方法,那就是单独配置404错误处理项。

同样也是在web.config中操作,配置如下:

<httpErrors errorMode="Custom" existingResponse="Replace">
     <remove statusCode="404" subStatusCode="-1" />
     <error statusCode="404" prefixLanguageFilePath="" path="/Handler.ashx" responseMode="ExecuteURL" />
</httpErrors>
这种方法肯定是没有上种方法灵活,所以个人采用的还是HttpModule管道处理的方法。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值