我的httphandler没有调用

时间:2015-10-09 10:27:49

标签: asp.net httphandler

我的自定义HttpHandler有问题。 1.所以在我的解决方案中,我添加了一个项目类库--Handler(所以命名空间是Handler)

  1. 我添加了MyHandler.css类,该类在此类库中实现了IHttphandler接口。

  2. 下一步

    MySite项目的Web配置我添加了这个

    <system.web>
             <httpHandlers>
               <add verb="*" path="*.ascx" type="Handler.MyHandler, MySite "/>
             </httpHandlers>
    
  3. 但是,当我尝试查看在我的网站中访问.ascx文件时会发生什么 我收到了错误

    HTTP Error 404.7 - Not Found
    The request filtering module is configured to deny the file extension.
    

    为什么我的httphandler没有被调用 谢谢你inadvance

1 个答案:

答案 0 :(得分:1)

这是因为IIS Request Filtering module配置为拒绝.ascx文件的请求,并且过滤模块在IIS管道中比响应处理程序更早地响应请求。请阅读this blog entry以获取详细的大纲。

您可以使用IIS管理器工具在IIS中“正确”配置“请求过滤”,或者如果您通过编辑applicationhost.config文件来使用IIS Express,您可以在%userprofile%\Documents\IISExpress\config找到该文件你会找到字符串:

<add fileExtension=".ascx" allowed="false" />

如果您不想更改请求过滤配置,可以考虑将Handler重新实现为模块,这意味着继承IHttpModule而不是IHttpHandler并执行更多操作腿自己工作。

相关问题