为什么我的HttpHandler没有被解雇?

时间:2013-01-05 20:38:29

标签: asp.net httphandler ihttphandler

我正在尝试使用http hadler,所以我创建了一个类lirary项目并添加了这段代码:

 namespace MyProject.Handlers
{
    public class Class1 : IHttpHandler
    {
        public bool IsReusable
        {
            get { return false; }
        }

        public void ProcessRequest(HttpContext context)
        {
            context.Response.Write("Hello from custom handler.");
        }
    }
}

然后我编译了它,它生成了MyProject.Handlers.dll文件。我把它放在我的asp.net bin文件夹中并将其添加到asp.net

<system.webServer>
    <handlers>
        <add name="TutorialHandler" verb="*" path="*" type="MyProject.Handlers.Class1, MyProject.Handlers" modules="IsapiModule" scriptProcessor="c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="File" />
    </handlers>
<modules runAllManagedModulesForAllRequests="true">
    //some stuff I *think* it doesn't make a difference
</modules>
//some stuff I *think* it doesn't make a difference
</system.webServer>

<system.web>
 <httpHandlers>
      <add verb="*" path="*" type="MyProject.Handlers.Class1, MyProject.Handlers" />
    </httpHandlers>
  </system.web>

但它没有被召唤! 我启动调试器,设置断点,但它不会停止。如果我在firebug中检查输出html,则句子“Hello from custom handler”不存在。

我做错了什么?

谢谢, 奥斯卡

编辑:我正在使用框架4.0,IIS7。 可能是我在使用路线吗? (不是直接调用index.aspx,而是/ home或类似的东西?)

1 个答案:

答案 0 :(得分:0)

由于某种原因,它在处理程序列表末尾时没有被调用。我移动到顶部,并得到一个关于webresources.axd的奇怪错误。共振是路径=“*”。 我找不到匹配的路径,因为我正在使用路线。

最后我发现我使用的是错误的工具:模块对我来说是正确的,而不是处理程序,因为我想根据具体情况在输出中添加内容。所以我改变了使用模块的方法,现在看起来很好。 感谢所有帮助我发表评论的人!