2012-03-19 93 views
2

我在.NET中爲所有*.html文件使用自定義HttpHandler,但是我想爲文件foo.html創建一個例外,應該將其作爲硬件上的靜態文件處理駕駛。我已經試過:IIS - 使用HttpHandler除了一個以外的所有文件

<httpHandlers> 
    <remove verb="*" path="*.html" /> 
    <add verb="*" path="/foo.html" type="System.Web.StaticFileHandler" /> 
    <add verb="*" path="*.html" validate="false" type="Imp.Handler" /> 
    </httpHandlers> 

除了:

<httpHandlers> 
    <remove verb="*" path="*.html" /> 
    <add verb="*" path="*.html" validate="false" type="Imp.Handler" /> 
    <add verb="*" path="/foo.html" type="System.Web.StaticFileHandler" /> 
    </httpHandlers> 

然而,既會造成Imp.Handler仍然處理foo.html請求。我究竟做錯了什麼?

IIS在經典模式下運行。

回答

0

可能是這種方法可以幫助你,將文件移動到其他文件夾並禁用此文件夾的httphandler。

<location allowOverride="false" path="Static"> 
    <system.web> 
     <httpHandlers> 
     <remove verb="*" path="*.htm"/> 
     <!--<add verb="*" path="/foo.htm" type="System.Web.StaticFileHandler" />--> 
     </httpHandlers> 
    </system.web> 
</location> 

<httpHandlers> 
    <add verb="*" path="*.html" validate="false" type="Imp.Handler" /> 
</httpHandlers> 

我想測試這一點,問題是:

if i remove HttpHandler for the "*.html" in the location element,and add a other httphandler will doesn't worked。例如:

<location> 
    <remove verb="*" path="*.htm"/> 
    <add verb="*" path="foo.html" validate="false" type="Imp.Handler" /> 
</location> 
+0

不,我需要的路徑是'/ foo.html' – 2012-03-19 04:01:01

+0

OK,或者你可以使用IIS的ISAPI來解決這個問題。「Ionics Isapi Rewrite Filter」 – zhengchun 2012-03-19 04:06:18

相關問題