2012-06-22 20 views
5

Jeden z naszych użytkowników otrzymuje błąd w naszej aplikacji internetowej. Nie mogliśmy powielić tego problemu i podejrzewałem, że jest związany z siecią. Kazałem użytkownikowi wypróbować aplikację przy użyciu notatnika w ich biurze i domu, i potwierdziłem, że problem występuje tylko w ich biurze.Serwer nie może ustawić typu zawartości po wysłaniu nagłówków HTTP - śledzenie tego w dół

Zalogowałem się na serwer i obejrzałem przeglądarkę zdarzeń zaraz po tym, jak spróbowałem w ich biurze, a w dzienniku pojawiły się następujące ostrzeżenia.

Brakuje mi możliwości rozpoczęcia śledzenia. Jakieś sugestie?

Przeglądarka zdarzeń poniżej:

kod zdarzenia: 3005 Komunikat o zdarzeniu: nieobsługiwany wyjątek wystąpił. Czas trwania wydarzenia: 20.06.2012 18:32:45 Event time (UTC): 6/20/2012 10:32:45 PM Identyfikator zdarzenia: ebf8f628a9b3457cbea117c8c2da2186 Sekwencja zdarzeń: 2970 Zdarzenie zdarzenia: 26 Kod szczegółów wydarzenia: 0 informacje Zastosowanie:

Application domain: /LM/W3SVC/50/ROOT-1-129847041933281152 
Trust level: Full 
Application Virtual Path:/
Application Path: c:\websites\foobar.acme.com\ 
Machine name: MyServer Process information: 
Process ID: 15152 
Process name: w3wp.exe 
Account name: NT AUTHORITY\NETWORK SERVICE Exception information: 
Exception type: HttpException 
Exception message: Server cannot set content type after HTTP headers have been sent. Request information: 
Request URL: http://foobar.acme.com/Project/Evaluate/ResultsXML.aspx?step=89&uid=4397&rnd=hhf8oe 

Request path: /Project/Evaluate/ResultsXML.aspx 
User host address: 192.168.102.1 
User: 
Is authenticated: False 
Authentication Type: 
Thread account name: NT AUTHORITY\NETWORK SERVICE Thread information: 
Thread ID: 12 
Thread account name: NT AUTHORITY\NETWORK SERVICE 
Is impersonating: False 
Stack trace: at System.Web.HttpResponse.set_ContentType(String value) at System.Web.UI.Page.SetIntrinsics(HttpContext context, 
Boolean allowAsync) at 
System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) 
at System.Web.UI.Page.ProcessRequest(HttpContext context) at 
ASP.error_aspx.ProcessRequest(HttpContext context) at 
System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, 
TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, 
VirtualPath path, VirtualPath filePath, String physPath, Exception 
error, String queryStringOverride) 
Custom event details: 
+0

możliwe duplikat [Server nie można ustawić stan po nagłówki HTTP wysłano IIS7.5] (http: // stackoverflow .com/questions/2383169/server-can-set-status-after-http-headers-have-been-sent-iis7-5) –

+0

możliwy duplikat [Serwer nie może ustawić typu zawartości po wysłaniu nagłówków HTTP] (http : //stackoverflow.com/questions/901083/server-cannot-set-content-type-after-http-headers-have-been-sent) –

+0

możliwy duplikat [Serwer nie może ustawić typu zawartości po wysłaniu nagłówków HTTP] (http://stackoverflow.com/questions/9360857/server-cannot-set-content-type-after-http-headers-have-been-sent) –

Odpowiedz

0

mógłby zrobić ze zintegrowanym trybie versus rurociągu klasycznej. Porównaj swoje dwa środowiska i upewnij się, że nie różnią się pod tym względem.

IIRC w trybie zintegrowanego potoku można resetować lub usuwać nagłówki po ich zapisaniu; w trybie klasycznym nie można.

Jeśli nie wiesz różnicy, sprawdź artykuł this.

+1

Jakie dwa środowiska? Jest tylko jeden serwer, chyba że źle rozumiem pytanie? – hvd

+0

Interesujące jest to, że czytałem pytanie jako mające środowisko, które nie działa ("biuro") i inne, które to robią. Ale przy drugim czytaniu być może jest tylko jeden serwer i jest to jakiś rodzaj przeglądarki/sieci. W takim przypadku błąd w dzienniku zdarzeń jest albo czerwonym śledziem, albo jest to jeden dziwny problem. –

0

Dodaję drugą odpowiedź w przypadku, gdy zupełnie błędnie zrozumiałem pytanie, kiedy napisałem pierwszą odpowiedź. W tej odpowiedzi zakładam, że jest dokładnie jeden serwer i jest to problem związany z przeglądarką/użytkownikiem.

  1. Potwierdź, że błąd zostanie zaksięgowana nie jest czerwony herring-- sprawdzić dzienniki zdarzeń dla innych zdarzeń i upewnij się, że zdarza się tylko wtedy, gdy użytkownik napotka swój błąd.

  2. Proszę opisać zachowania związanego z błędem (np co robi błąd 500? Wiadomość wyświetlacz przeglądarka? Błąd systemu z pewnego rodzaju? Rozłączanie sieci?)

  3. Zbadać ruch przychodzący z przeglądarki (np wyglądać w dziennikach IIS). Twój serwer nie przejmuje się niczym innym na temat użytkownika poza tym, w jaki sposób pojawia się w ruchu. W szczególności zwracałbym uwagę na różnice w nagłówkach akceptujących, które mogą być specyficzne dla przeglądarki i mogą uruchamiać inną ścieżkę logiczną na serwerze - taką, która próbuje ustawić typ zawartości na coś, co zaakceptuje przeglądarka użytkownika.

Oto moje dzikie przypuszczenie na co odpowiedź na teraz:

Celem ResultsXml.aspx jest powrót dokument pewnego rodzaju; ten dokument wymaga zewnętrznej aplikacji (takiej jak przeglądarka PDF lub XML); zwraca go z zawartością inline; a lokalna polityka bezpieczeństwa komputera biurowego wyłącza buforowanie. W takim przypadku aplikacja przeglądarki innej firmy nie znajdzie pliku, ponieważ pamięć podręczna nie będzie tam dostępna.

Jeśli się mylę, proszę umieszczać wyżej, i będę zgadywać :)

Powiązane problemy