Почему мой HttpHandler игнорируется? - PullRequest
1 голос
/ 28 июня 2010

В приложении ASP.NET мне нужно внести некоторые изменения в каждый отправленный файл CSS.

Итак, я создал HttpHandler (внутри самого приложения), добавил:

<add verb="*" path="*.css" type="MyWebsite.CssTestHandler,MyWebsite"/>

в Web.config в system.web/httpHandlers и изменил обработчик следующим образом:

public void ProcessRequest(HttpContext context)
{
    context.Response.Clear();
    context.Response.Write("Hello World");
    context.Response.End();
}

Но CSS-файлы остаются такими же, какими они были раньше, поэтому обработчик просто игнорируется.

Что я делаю не так?

Ответы [ 3 ]

2 голосов
/ 28 июня 2010

Вам нужно настроить карту подстановки в IIS, см. Следующую ссылку:

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/5c5ae5e0-f4f9-44b0-a743-f4c3a5ff68ec.mspx?mfr=true

Это приведет к тому, что ASP.NET будет обслуживать запрос на CSS-файл.чем просто IIS.

Если приложение обслуживает очень большой трафик, рассмотрите возможность установки этого сопоставления только для файлов .css или даже лучше измените данные CSS на странице, а не изменяя файл.

1 голос
/ 28 июня 2010

Проверьте эту страницу для получения инструкций по всем 3 случаям версии IIS (6, 7 классических конвейеров и 7 интегрированных конвейеров): http://learn.iis.net/page.aspx/508/wildcard-script-mapping-and-iis-7-integrated-pipeline/

В соответствии с этим, в случае встроенного конвейера, вам необходимо добавить следующий параметр конфигурации:

runAllManagedModulesForAllRequests="True"
1 голос
/ 28 июня 2010

Приложение игнорирует ваши CSS-файлы, потому что IIS игнорирует CSS-файлы.

Он не сопоставлен с исполняемым файлом в IIS. альтернативный текст http://www.fastpics.net/sharepics/imih41904722.jpg

Попробуйте добавить расширение .css и сопоставить его с .NET dll.

...