Как получить IIS 7 для маршрутизации запросов на файлы .css к aspnet_isapi.dll? - PullRequest
3 голосов
/ 20 мая 2011

В настоящее время мы используем DotLess в веб-приложении ASP.NET, размещенном на IIS 6. Чтобы это работало, нам нужно было настроить наши параметры IIS, чтобы запросы файлов * .css получалиобрабатывается aspnet_isapi.dll (щелкните правой кнопкой мыши веб-сайт в IIS -> свойства -> вкладка домашнего каталога -> конфигурация).

Сейчас мы переносим это веб-приложение на IIS 7 (классический режим) и можемКажется, я не нашел способ настроить IIS 7 таким образом.Есть ли способ изменить настройки IIS 7, чтобы запросы файлов * .css обрабатывались aspnet_isapi.dll, как мы это делали в IIS 6?

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

определяет HttpHandler и подключает его к iis через web.config, в этом случае у меня есть класс с именем CssHandler , который реализует интерфейс IHttpHandler .

<configuration>
  <system.web>
    <httpHandlers>
      <add verb="GET" path="*.css" validate="false" type="CssHandler" />
    </httpHandlers>
   </system.web>

  <!-- for iis7 integrated pipeline-->
  <system.webServer>
    <handlers>
      <add name="CssHandler" verb="GET" path="*.css" preCondition="integratedMode" type="CssHandler" />
    </handlers>
  </system.webServer>

</configuration>
2 голосов
/ 20 мая 2011

Вы видели эту ссылку?Вам это поможет?http://learn.iis.net/page.aspx/508/wildcard-script-mapping-and-iis-7-integrated-pipeline/

Эффективно это: IIS7 -> Веб-сайт -> Сопоставления обработчиков -> Добавить сопоставление сценария с подстановочными знаками

Сопоставление сценария с подстановочными знаками в классическом конвейерном режиме IIS 7

С классическимВ конвейерном режиме ASP.NET подключается к конвейеру обработки запросов IIS как расширение ISAPI - точно так же, как это было в IIS 6. Фактически, если вы открываете файл% WINDIR% \ system32 \ inetsrv \ config \ applicationHost.configи найдите в нем раздел, в котором вы можете увидеть, как IIS настроен для сопоставления запросов ASP.NET с aspnet_isapi.dll:

<handlers accessPolicy="Read, Script">
  ...
  <add name="PageHandlerFactory-ISAPI-2.0" 
       path="*.aspx" verb="GET,HEAD,POST,DEBUG" 
       modules="IsapiModule" 
       scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" 
       preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
  ...
</handlers>

Обратите внимание на атрибут preCondition для сопоставления обработчика.Среди прочего этот атрибут имеет значение classicMode, что гарантирует, что это сопоставление обработчика вступит в силу только тогда, когда пул приложений настроен для работы в классическом режиме.Теперь, если вы хотите настроить сопоставление с подстановочными знаками для ASP.NET, работающего в классическом режиме, вы можете сделать это, выбрав «Сопоставления обработчиков» в диспетчере IIS, а затем щелкнув действие «Добавить сопоставление сценариев с подстановочными знаками ...».

...