2010-06-18 15 views
5

Ho uno strano problema in cui ho un HttpHandler che ha il suo evento ProcessRequest() che si attiva due volte.ASP.Net HttpHandler ProcessRequest() che si attiva due volte

Non ho nient'altro nella classe tranne un puntatore a un metodo statico, quindi sono perso.

ho fatto un po 'googling inutilmente anche pensato che appare un paio di persone stanno avendo problemi simili:

Codice:

public bool IsReusable 
    { 
     get { return true; } 
    } 

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

risposta

10

Elimina questo.

Sono stato testato in firefox e questo accade SOLO quando chiamano direttamente il gestore.

Se ho impostato il gestore come immagine src, ciò non accade.

Inoltre in IE questo non accade - è solo Firefox.

ho pensato che potessero essere le mie estensioni (in particolare firebug o YSLOW), quindi le ho disabilitate manualmente una per una e stava ancora succedendo così non ho idea ma Firefox fa due chiamate a una pagina.

forse è simile a questo vecchio post come sto tornando un GIF come il tipo di contenuto: http://www.hanselman.com/blog/InternetExplorerAndTheMagicOfMicrosoftKBArticleQ293792.aspx

speranza che questo aiuta qualcuno come quello è un paio d'ore che non otterrò mai indietro ...

+0

Grazie, questo mi ha impedito di impazzire. Per quanto ami FF, a volte fa cose strane. – Kon

+0

ho lo stesso problema ma è in chrome, voglio che il mio gestore sia licenziato quando lo chiamo non quando la pagina viene caricata..una buona idea come posso farlo plz – Armance

+0

Cosa intendi per "gestore impostato come immagine src "puoi per favore elaborare? Cercando di risolvere un problema simile. –

1

Sembra che si sta tentando di tenere traccia di visualizzazione di una pagina; potrebbe qualcosa sul client causare il richiamo della pagina/gestore per due volte? Ho visto un comportamento simile in passato quando l'html inviato al browser conteneva un tag img senza l'attributo src. Questo è accaduto solo in FireFox, ma causava il doppio richiamo della pagina. Suggerimenti: vedi se ci sono immagini senza tag src; utilizzare Fiddler o FireBug per ispezionare il traffico http e assicurarsi di non chiamare inavvertitamente il gestore due volte. Maggiori dettagli sarebbero anche utili. Spero che questo ti aiuti.

+0

Sto chiamando direttamente il gestore. Intendo farlo visualizzare come un pixel di tracciamento ma non è arrivato così lontano. lo sto semplicemente chiamando in un browser. quindi invia un file gif al browser. questo funziona bene, si accende il metodo due volte ?? – Doug

1

Potrebbe essere che il browser stava cercando di ottenere una favicon?

Problemi correlati