ASP.Net HttpHandler ProcessRequest()触发两次

时间:2010-06-18 04:11:22

标签: asp.net httphandler ihttphandler

我有一个奇怪的问题,我有一个HttpHandler,它的ProcessRequest()事件被触发两次。

除了指向静态方法的指针外,我在类中没有别的东西,所以我迷失了。

我做了一些谷歌搜索无济于事,甚至认为似乎有一些人有类似的问题:

代码:

    public bool IsReusable
    {
        get { return true; }
    }

    public void ProcessRequest(HttpContext context)
    {
        Common.Tracker.TrackPageView(context);
    }

3 个答案:

答案 0 :(得分:10)

报废。

我一直在使用firefox进行测试,这只会在我直接调用处理程序时发生。

如果我将处理程序设置为图像src,则不会发生这种情况。

另外在IE中这不会发生 - 它只是firefox。

我认为它可能是我的扩展程序(特别是firebug或YSLOW),所以我一个接一个地手动禁用它们,它仍然在发生,所以我不知道但是firefox会对页面进行两次调用。

也许它与这篇旧帖相似,因为我将GIF作为内容类型返回: http://www.hanselman.com/blog/InternetExplorerAndTheMagicOfMicrosoftKBArticleQ293792.aspx

希望这可以帮助某人,因为那是几个小时我永远不会回来......

答案 1 :(得分:1)

您似乎正在尝试跟踪网页浏览量;可能客户端上的某些东西导致页面/处理程序被调用两次?我发现过去发送到浏览器的html包含一个没有src属性的img标签时,我看到了类似的行为。这只发生在FireFox中,但导致页面被调用两次。建议:查看是否有没有src标签的图片;使用Fiddler或FireBug来检查http流量并确保您不会无意中两次调用处理程序。更多细节也会有所帮助。希望这会有所帮助。

答案 2 :(得分:1)

可能是浏览器试图获取图标吗?