代码之家  ›  专栏  ›  技术社区  ›  Doug

ASP.NET httphandler processRequest()触发两次

  •  5
  • Doug  · 技术社区  · 14 年前

    我有一个奇怪的问题,我有一个httphandler让它的processRequest()事件触发两次。

    我在类中除了一个指向静态方法的指针之外没有其他东西,所以我迷路了。

    我做了一些谷歌搜索,但没有用,甚至认为有几个人也有类似的问题:

    代码:

        public bool IsReusable
        {
            get { return true; }
        }
    
        public void ProcessRequest(HttpContext context)
        {
            Common.Tracker.TrackPageView(context);
        }
    
    3 回复  |  直到 13 年前
        1
  •  10
  •   Doug    14 年前

    把这个扔掉。

    我一直在火狐中测试,只有当我直接调用处理程序时才会发生这种情况。

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

    此外,在IE中,这不会发生——它只是火狐。

    我认为这可能是我的扩展(特别是Firebug或yslow),所以我手动逐个禁用它们,但它仍然在发生,所以我不知道,但火狐对一个页面进行了两次调用。

    可能它与这篇旧文章类似,因为我将返回一个GIF作为内容类型: http://www.hanselman.com/blog/InternetExplorerAndTheMagicOfMicrosoftKBArticleQ293792.aspx

    希望这能帮助一些人,因为这是几个小时,我再也回不来了…

        2
  •  1
  •   David A Moss    14 年前

    看起来您正在尝试跟踪页面视图;客户端上的某些内容是否会导致两次调用页面/处理程序?我在过去看到过类似的行为,当发送到浏览器的HTML包含一个不带src属性的img标记时。这只在Firefox中发生,但导致页面被调用两次。建议:查看是否有没有SRC标记的图像;使用fiddler或firebug检查HTTP流量,并确保不会无意中调用处理程序两次。更多的细节也会有帮助。希望这有帮助。

        3
  •  1
  •   Gordon Thompson    13 年前

    可能是浏览器试图获取一个favicon?