请帮助HttpHandler
有一个HttpHandler处理到mysite.ru的链接。
在Web.Config中注册如下:
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="mysite.ru" type="App_Code.SyncHttpHandler"/>
</httpHandlers>
</system.web>
</configuration>
现在通过Handler只打开表单的引用:
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 :(得分:0)
<httpHandlers>
<add verb="*" path="*.js" validate="false" type="SyncHttpHandler" />
<add verb="*" path="*.jpg" validate="false" type="SyncHttpHandler" />
</httpHandlers>
你可以使用它。
答案 1 :(得分:0)
通常,IIS通过自己的静态文件处理程序处理所有静态文件。因此,您需要首先配置IIS以将此路径下的所有文件(扩展)传递给ASP.NET运行时。确切的步骤(尽管类似)将取决于IIS版本 - 例如,请参阅IIS {的here。
下一部分将确保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>