2011-10-11 114 views
0

請幫助HttpHandler通過HttpHandler打開鏈接

有一個HttpHandler處理到mysite.ru的鏈接。

Web.Config中註冊如下:

<configuration> 
    <system.web> 
    <httpHandlers> 

     <add verb="*" path="mysite.ru" type="App_Code.SyncHttpHandler"/> 

    </httpHandlers> 
    </system.web> 
</configuration> 

現在通過處理器打開窗體的唯一引用:

mysite.ru
mysite.ru/struct/
mysite.ru/articles/

如何使處理程序截取和處理表​​單中的鏈接:

mysite.ru/files/images/img.jpg
mysite.ru/files/scripts/script.js


如果我寫,這樣就可以運行任何聯繫,包括SyncHttpHandler/Google.ru 。 我需要能夠運行僅連接特定的站點。

<add verb="*" path="mysite.ru/*.*" type="App_Code.SyncHttpHandler"/>不工作

<add verb="*" path="*.*" type="App_Code.SyncHttpHandler"/>打開任何鏈接

回答

0
<httpHandlers> 
    <add verb="*" path="*.js" validate="false" type="SyncHttpHandler" /> 
    <add verb="*" path="*.jpg" validate="false" type="SyncHttpHandler" /> 
</httpHandlers> 

您可以使用此。

0

通常情況下,IIS進程由它自己的靜態文件處理程序的所有靜態文件。因此,您需要首先配置您的IIS,以將此路徑下的所有文件(擴展名)傳遞給ASP.NET運行時。確切的步驟(儘管類似)將取決於IIS版本 - 例如,請參閱here用於IIS 6.

下一部分將確保ASP.NET運行時將所有這些請求傳遞給您的處理程序。因此,我認爲你的配置應該可以工作,但如果不能,那就試試使用通配符。例如,

<add verb="*" path="mysite.ru/*.*" type="App_Code.SyncHttpHandler"/> 

或者也許,

<location path="mysite.ru" > 
<system.web> 
    <add verb="*" path="*.*" type="App_Code.SyncHttpHandler"/> 
</system.web> 
</location>