2010-06-18 10 views
5

Mam dziwny problem, gdy mam HttpHandler mającego dwukrotnie wywołanie zdarzenia ProcessRequest().ASP.Net HttpHandler ProcessRequest() wypalanie dwa razy

Nie mam nic więcej w klasie poza wskaźnikiem statycznej metody, więc jestem zagubiony.

Zrobiłem kilka googling bezskutecznie nawet myślał, że pojawi się kilka osób mających podobne problemy:

Kod:

public bool IsReusable 
    { 
     get { return true; } 
    } 

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

Odpowiedz

10

Złomuj to.

Testowałem w firefoxie i to TYLKO dzieje się, gdy bezpośrednio wywołuję program obsługi.

Jeśli mam program ustawiony jako obraz src, to się nie stanie.

dodatkowo w IE tak się nie dzieje - jest to tylko firefox.

Myślałem, że to mogą być moje rozszerzenia (w szczególności firebug lub YSLOW), więc ręcznie je wyłączałam jeden po drugim i wciąż się to działo, więc nie mam pojęcia, ale firefox wykonuje dwa połączenia na stronę.

może jest to podobne do tego starego postu jako Wracam GIF jako rodzaj zawartości: http://www.hanselman.com/blog/InternetExplorerAndTheMagicOfMicrosoftKBArticleQ293792.aspx

nadzieję, że to pomoże ktoś jak to jest kilka godzin i nigdy nie wrócić ...

+0

Dzięki temu pomogło mi to oszaleć. Mimo, że uwielbiam FF, czasami robi dziwne rzeczy. – Kon

+0

Mam ten sam problem, ale jest on w chromie, chcę, aby mój program obsługi był uruchamiany, gdy go nie nazywam, gdy ładuje się strona ... nie wiem jak to zrobić plz – Armance

+0

Co masz na myśli przez "program obsługi ustawiony jako obraz src "czy mógłbyś rozwinąć? Próbuję rozwiązać podobny problem. –

1

Wygląda na to, że starają się śledzić widok strony; czy coś na kliencie może powodować wywoływanie strony/programu obsługi dwukrotnie? Widziałem podobne zachowanie w przeszłości, gdy html wysyłany do przeglądarki zawierał tag img bez atrybutu src. Stało się tak tylko w FireFox, ale powodowało, że strona była wywoływana dwa razy. Sugestie: Sprawdź, czy są jakieś obrazy bez tagów src; użyj Fiddlera lub FireBuga do sprawdzenia ruchu http i upewnij się, że nie powtarzasz przypadkowo dwukrotnego wywoływania procedury obsługi. Dodatkowe informacje również byłyby pomocne. Mam nadzieję że to pomoże.

+0

Bezpośrednio wywołuję procedurę obsługi. Zamierzam go wyświetlić jako piksel śledzący, ale nie zaszedłem tak daleko. po prostu dzwonię do przeglądarki. następnie przesyła plik gif do przeglądarki. to działa dobrze, po prostu odpala metodę dwa razy? – Doug

1

Czy to możliwe, że przeglądarka próbowała uzyskać favicon?