HttpHandler для статического изображения не вызывается, когда файл не существует - PullRequest
1 голос
/ 22 октября 2011

У меня есть httpHandler, который обрабатывает файл jpg. Когда запрос на изображение JPG поступает на сервер, он пересылается обработчику. Это работает нормально, пока я не реализовал отпечатки пальцев для правила скорости страницы Google.

Теперь вызывается 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 отпечатан, и я хочу получить запрос в обработчике, но обработчик никогда не вызывается.

Я думаю, что это может быть конфигурация IIS 7, которая возвращает 404, а не передает ее обработчику.

Пожалуйста, любые советы или конфигурации, которые могут направить запрос к httphandler, независимо от того, существует он или нет.

Я использую asp.net MVC 2 с интегрированным режимом IIS 7 с целевой платформой 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 Ответ

2 голосов
/ 23 октября 2011

Убедитесь, что у вас есть это в вашем файле web.config:

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

runAllManagedModulesForAllRequests будет указывать IIS направлять каждый запрос через конвейер .net, чтобы ваш модуль принимал этот запрос, поскольку по умолчанию статические ресурсы, такие как .jpg, настроены так, что они не запускаются через asp.net.

...