【问题标题】:My httphandler is not invoking我的 httphandler 没有调用
【发布时间】:2015-10-09 10:27:48
【问题描述】:

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

  1. 我在这个类库中添加了实现 IHttphandler 接口的 MyHandler.css 类。

  2. 下一个

    我添加的 MySite 项目的 web 配置

    <system.web>
             <httpHandlers>
               <add verb="*" path="*.ascx" type="Handler.MyHandler, MySite "/>
             </httpHandlers>
    

但是当我尝试查看如果我尝试访问我网站中的 .ascx 文件时会发生什么 我收到错误

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

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

【问题讨论】:

    标签: asp.net httphandler


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 1970-01-01
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多