1

在 ASP.NET 应用程序中,我需要对发送的每个 CSS 文件进行一些更改。

所以我创建了一个 HttpHandler(在应用程序本身内部),添加:

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

到 Web.configsystem.web/httpHandlers并像这样修改处理程序:

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

但是 CSS 文件仍然和以前一样,所以处理程序被忽略了。

我做错了什么?

4

3 回答 3

2

您需要在 IIS 中设置通配符映射,请参见以下链接:

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

这将导致对 CSS 文件的请求由 ASP.NET 提供,而不仅仅是 IIS。

如果应用程序提供非常高的流量,请考虑仅为 .css 文件设置此映射,或者甚至更好地更改页面中的 CSS 数据而不是更改文件。

于 2010-06-28T13:55:23.250 回答
1

该应用程序会忽略您的 CSS 文件,因为 IIS 会忽略 CSS 文件。

它没有映射到 IIS 中的可执行文件。 替代文字 http://www.fastpics.net/sharepics/imih41904722.jpg

尝试添加 .css 扩展名并将其映射到 .NET dll。

于 2010-06-28T13:56:44.450 回答
1

查看此页面以获取有关 IIS 版本(6、7 经典管道和 7 集成管道)的所有 3 种情况的说明: http ://learn.iis.net/page.aspx/508/wildcard-script-mapping-and-iis- 7-集成管道/

根据它,在集成管道的情况下,您需要添加以下配置参数:

runAllManagedModulesForAllRequests="True"
于 2010-06-28T13:58:23.243 回答