2011-02-07 26 views
2

原谅我,如果这是基本的。我从来没有做过,似乎无法弄清楚为什么它不起作用。我写了一个小处理程序来对CSS文件进行一些解析。我加了这个:自定义HttpHandler永不运行

<system.web> 
     <httpHandlers> 
      <remove verb="*" path="*.css"/> 
      <add verb="*" path="*.css" 
type="MyNameSpace.CssRelativePathHandler,CssRelativePathHandler" /> 
     </httpHandlers> 
    </system.web> 

什么也没有发生。 CSS文件正常解析。没有错误,没有,代码从不运行。我错过了什么?这应该不会导致在* .css文件提供时使用处理程序? (我后来添加了“删除”,因为我认为或许我需要这样做来覆盖内置的hander,再次,两者都没有区别)。

这是IIS 6.无论如何,我添加了IIS 7代码(搜索答案后),但没有任何区别。

 <system.webServer> 
     <handlers> 
      <add name="CssHandler" verb="*" path="*.css" 
type="MyNameSpace.CssRelativePathHandler,CssRelativePathHandler" /> 
     </handlers> 
     </system.webServer> 

回答

1

您需要将IIS6配置为将请求文件.css发送到ASP.Net。

如果你一直在使用IIS7,你的<system.webServer>元素会为你做到这一点,但IIS6早于此。

0

对于IIS 6,您需要告诉它将* .css文件发送到ASP.NET。

  1. 启动IIS管理器
  2. 右键单击默认Web站点
  3. 单击主目录选项卡
  4. 在应用程序设置单击配置上...

添加一个新的关联为.css并将其映射到.NET可执行文件:

C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll

0

听起来好像您需要配置IIS以使ASP.NET能够执行.css扩展。

菲尔哈克有这样做的演练(只是标题“映射.mvc到ASP.NET”下的.css替换.mvc): http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx

或者你可以在IIS中设置一个通配符映射6: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/5c5ae5e0-f4f9-44b0-a743-f4c3a5ff68ec.mspx?mfr=true

我建议你用第一种方法是做通配符的方法将所有请求发送到ASP.NET去 - 所以它有更多的开销。 PS:在Phil的文章中,他还列出了“IIS6无扩展URL”,并且还介绍了通配符映射方法。