Как заставить статическую страницу Html проходить через HttpModule в IIS7.0?

Я создал простой HttpModule, который удаляет пробелы из ответа перед его отправкой клиенту. Это отлично работает для страницы aspx в IIS7.0, но если я создаю статическую страницу html и вызываю ее, HttpModule не срабатывает (как я знаю, это потому, что источник содержит пробелы, которые в противном случае следовало бы удалить). Очевидно, я что-то делаю неправильно, но не знаю что.

Мой веб-сайт находится в пуле приложений с .NET 4.0 и ManagedPipelineMode = Integrated .

Я добавил свой модуль как ManagedModule и ссылаюсь на сборку строгого имени-ключа от GAC.

спасибо

Edit - это часть system.webserver из web.config

<system.webServer>
  ...
  <modules runAllManagedModulesForAllRequests="true">
    <add name="RemoveWhitespaceHttpModule" 
         type="HttpModules.Modules.RemoveWhitespaceHttpModule, HttpModules, 
           Version=1.0.0.0, Culture=neutral, PublicKeyToken=8a83u4bi47o9fo0d" 
           preCondition="" />
  </modules>
  <defaultDocument>
    <files>
      <add value="TestForm.aspx" />
    </files>
  </defaultDocument>
</system.webServer>

Edit - Исправлено. Для всех, кто интересуется, вот как мой модуль проверяет ответ, а затем решает, продолжать ли удаление пробелов или нет

if (contentType.Equals("text/html") 
  && httpContext.Response.StatusCode == 200 
  && httpContext.CurrentHandler != null)
{ ... }

Проблема заключалась в третьем условии выше httpContext.CurrentHandler! = Null . при вызове этого модуля для статических страниц .html currentHandler был нулевым, и, следовательно, код никогда не входил внутрь для управления html. Я удалил это третье условие, и теперь оно работает. спасибо за ответы всем

5
задан Konrad Viltersten 17 November 2012 в 13:10
поделиться