Использование HttpModule для отображения изображений
-
03-07-2019 - |
Вопрос
У меня есть HttpModule, который отображает изображения, соответствующие определенному шаблону URL.Например, /images/employees/jason.jpg обрабатывается модулем, а все остальные изображения — нет.Он отлично работает на моей локальной машине (Cassini и IIS 7).Однако рабочий сервер IIS6 не работает.Я попросил хостинговую компанию сопоставить изображения с рабочим процессом ASP.NET.Теперь все изображения показывают, что они не могут быть отображены, за исключением изображений, которые должны быть обработаны модулем.Они работают корректно.
Я запустил экземпляр HttpWatch для одного из файлов и получил следующую ошибку:
ERROR_HTTP_INVALID_SERVER_RESPONSE
Есть идеи?
Решение
Окончательный ответ:
Модуль необходимо обновить для передачи файлов сервера.Итак, я добавил else к своему исходному if и проверил, является ли это типом изображения (с помощью служебного метода), а затем использовал Response.TransmitFile() для передачи файла в браузер.
Затем я столкнулся с проблемой пробелов в изображениях.Это произошло потому, что я забыл, что у меня есть файлы .aspx, зарегистрированные как тип изображения для проведения тестирования.Таким образом, каждая страница аварийно завершала работу во время процесса отладки или добавляла отступы, установленные с помощью CSS.Да!
Сейчас все просто отлично.Спасибо всем!
Другие советы
Кажется, с вашим модулем все в порядке, поэтому проблема, должно быть, исходит откуда-то еще.Есть ли у вас система безопасности, которая может блокировать изображения?Что на самом деле возвращается, когда вы запрашиваете статический файл?
Я бы предложил посмотреть, что возвращается (и его заголовки), используя что-то вроде Firebug для проверки таких вещей, как код ответа, тип контента, фактический необработанный ответ и т. д.
проверьте ваш web.config. IIS6/IIS7 имеет разные места для добавления модулей и зависит от того, в каком режиме работает ваш IIS7.
http://arcware.net/use-a-single-web-config-for-iis6-and-iis7