2011-10-11 156 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>