2010-03-24 71 views
2

我知道,如果我想爲MyPage.aspx請求轉到名爲MyAssembly的裝配MyHandler的所謂的課,我可以將它添加到我的web.config文件:如何在ASP.Net中排除與HttpHandler的指定路徑匹配的內容?

<configuration> 
    <system.web> 
    <httpHandlers> 
     <add verb="*" path="MyPage.aspx" type="MyHandler, MyAssembly"/> 
    </system.web> 
</configuration> 

這適用於任何我的頁面的.aspx在(由)網址:www.mycoolsite.com/MyProject/[SomePathHere]/MyPage.aspx

如果我想這樣做,每MyPage.aspx 除了 www.mycoolsite.com/ MyProject/NoHandler/MyPage.aspx

有沒有辦法從處理程序中排除該路徑?

回答

6

您可以在定義不同處理程序的NoHandler文件夾中放置一個web.config(如果您想要404服務器樣式等,則爲NotFound)。與您當前的web.config相同的格式,只需將您想要覆蓋的元素(如處理程序)即可。

舉個例子,如果你想在該目錄404重寫:

<configuration> 
<system.web> 
    <httpHandlers> 
    <remove verb="*" path="MyPage.aspx" type="MyHandler, MyAssembly"/> 
    <add verb="*" path="MyPage.aspx" type="MySpecialHandler, MyAssembly"/> 
    </httpHandlers> 
</system.web> 
</configuration> 
+0

如果事情兩個路徑是什麼決定優先級相匹配?我的意思是,我保證''會勝過'' –

+0

@Tim - 用一個例子更新了答案,還有一個刪除選項,您可以用於您的情況:) –

+0

感謝您的幫助,尼克。這個解決方案爲我工作,除了我不得不從刪除中刪除「類型」,否則它給了我一個錯誤。 –

相關問題