当文件不存在时,不会调用静态图像的HttpHandler

时间:2011-10-22 01:06:12

标签: asp.net asp.net-mvc httphandler

我有处理jpg文件的httpHandler。当jpg图像的请求进入服务器时,它被提供给处理程序。这可以正常工作,直到我为谷歌页面速度规则实现指纹打印。

现在它被调用http://static2.localnatamam.com/Uploaded/Image/Image_Haroon_ur_Rasheed_78.jpg

但不适用于

http://static2.localnatamam.com/Uploaded/Image/_SFP634229374826528000EFP_Image_Haroon_ur_Rasheed_78.jpg

第一个文件存在于目录中,但第二个文件不存在,因为第二个URL是手指打印的,我想在Handler中获取请求,但处理程序永远不会被唤起。

我认为它可能是IIS 7配置,它返回404而不是将其传递给处理程序。

请将任何建议或配置路由到httphandler,无论是否存在。

我正在使用带有IIS 7集成模式的asp.net MVC 2和本地环境中的目标框架4.0,因此上述URL都不会为任何正文打开。

我的处理程序是简单的IHttpHandler,具有以下IIS配置

<add name="CrossDomainResourceHandler" type="MvcApplication3.HttpHandlers.CrossDomainResourceHandler" path="*.jpg" verb="*" resourceType="Unspecified" allowPathInfo="false" modules="IsapiModule" scriptProcessor="%path%\aspnet_isapi.dll"/>

1 个答案:

答案 0 :(得分:2)

确保在web.config文件中包含此内容:

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
  </system.webServer>

runAllManagedModulesForAllRequests将告诉IIS通过.net管道路由每个请求,以便您的模块将选择此请求,因为默认静态资源(如.jpg)配置为不通过asp.net运行。