在ASP.NET应用程序中,我需要对发送的每个CSS文件进行一些更改。
所以我创建了一个HttpHandler(在应用程序内部),添加了:
<add verb="*" path="*.css" type="MyWebsite.CssTestHandler,MyWebsite"/>
到system.web/httpHandlers
中的Web.config并修改了这样的处理程序:
public void ProcessRequest(HttpContext context)
{
context.Response.Clear();
context.Response.Write("Hello World");
context.Response.End();
}
但CSS文件仍然像以前一样,所以处理程序只是被忽略了。
我做错了什么?
答案 0 :(得分:2)
您需要在IIS中设置通配符映射,请参阅以下链接:
这将导致ASP.NET文件的请求由IIS提供,而不仅仅是IIS。
如果应用程序提供非常高的流量,请考虑仅为.css文件设置此映射,甚至更好地更改页面中的CSS数据,而不是更改文件。
答案 1 :(得分:1)
应用程序会忽略您的CSS文件,因为IIS会忽略CSS文件。
它未映射到IIS中的可执行文件。 alt text http://www.fastpics.net/sharepics/imih41904722.jpg
尝试添加.css扩展名并将其映射到.NET dll。
答案 2 :(得分:1)
检查此页面以获取有关所有3种IIS版本(6,7 Classic Pipe和7 Integrated pipeline)的说明: http://learn.iis.net/page.aspx/508/wildcard-script-mapping-and-iis-7-integrated-pipeline/
根据它,在集成管道的情况下,您需要添加以下配置参数:
runAllManagedModulesForAllRequests="True"