2010-06-18 129 views
5

我有一個奇怪的問題,我有一個HttpHandler的ProcessRequest()事件觸發兩次。ASP.Net HttpHandler ProcessRequest()發射兩次

除了指向靜態方法的指針,我沒有其他任何東西,所以我迷路了。

我做了一些谷歌上搜索無果,甚至認爲它出現的幾個人都遇到類似問題:

代碼:

public bool IsReusable 
    { 
     get { return true; } 
    } 

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

回答

10

廢棄這個。

我一直在Firefox中測試,這隻發生在我直接調用處理程序時。

如果我有處理程序設置爲圖像src這不會發生。

另外在IE中這種情況不會發生 - 它只是firefox。

我認爲這可能是我的擴展(特別是螢火蟲或YSLOW),所以我手動禁用他們一個,它仍然發生,所以我不知道,但火狐瀏覽器使兩個電話到一個頁面。

也許是類似這樣的老帖子,因爲我返回GIF作爲內容類型: http://www.hanselman.com/blog/InternetExplorerAndTheMagicOfMicrosoftKBArticleQ293792.aspx

希望這可以幫助別人,因爲這是幾個小時,我永遠不會回來...

+0

謝謝,這有助於阻止我發瘋。儘管我喜歡FF,但它有時候確實很奇怪。 – Kon 2011-04-08 18:03:49

+0

我有同樣的問題,但它在鉻,我想我的處理程序被解僱,當我打電話不是當頁面加載..任何想法我怎麼能做到這一點PLZ – Armance 2011-09-08 12:05:48

+0

你是什麼意思的「處理程序設置爲圖像src「可以請你詳細說明嗎?試圖解決類似的問題。 – 2011-12-10 08:16:42

1

它看起來像你正試圖跟蹤頁面視圖。客戶端上的東西是否會導致頁面/處理程序被調用兩次?過去,當發送給瀏覽器的html包含一個沒有src屬性的img標籤時,我看到過類似的行爲。這隻發生在FireFox中,但導致頁面被調用兩次。建議:看看是否有沒有src標籤的圖片;使用Fiddler或FireBug檢查http流量,並確保不會無意中調用處理程序兩次。更多細節也會有所幫助。希望這可以幫助。

+0

我直接調用處理函數。我打算讓它顯示爲一個跟蹤像素,但沒有得到那麼多。我只是在瀏覽器中調用它。然後它將一個gif文件傳輸到瀏覽器。這工作正常,它只是激發方法兩次? – Doug 2010-06-18 04:51:31

1

難道是瀏覽器試圖獲得一個圖標?