"Seite kann nicht angezeigt werden"...
TPF
- programmiertechnik
Hallo alle miteinander,
nachdem ich mehr als eine Stunde vergeblich im Internetz nach einer Lösung gesucht habe, versuche ich hier mal mein Glück...
...ich arbeite an einer Website, die per ASP-Scripts und Datenbankzugriffen dynamisch Seiten generiert. Alles läuft super, nur dann gibt's folgendes Problem:
Bei einer ganz bestimmten Konfiguration (Benutzer schickt Daten über ein Formular an den Webserver, ASP-Script verarbeitet diese, usw...) zeigt mir der IE (Ver. 6) nur das weltberühmte "Seite kann nicht angezeigt werden blah blah" an. Schalte ich "zeige kurze HTTP-Fehlermeldungen" in den Internetoptionen aus, dann wird mir nicht etwa ein schöner Fehler sondern DIE SEITE RICHTIG angezeigt!?!?!?
Kennt einer von euch dieses Verhalten und vielleicht auch ein Workaround?
Gruß
TP
PS: Den Quellcode dieses Script kann hier an dieser Stelle aus rechtlichen Gründen leider nicht veröffentlichen.
Kennt einer von euch dieses Verhalten und vielleicht auch ein Workaround?
Was passiert in anderen Browsern? Hast du einmal den HTTP Header analysiert?
Struppi.
Lieber TPF,
PS: Den Quellcode dieses Script kann hier an dieser Stelle aus rechtlichen Gründen leider nicht veröffentlichen.
und den HTML-Code, der im Browser ankommt? Kannst Du den veröffentlichen?
Liebe Grüße,
Felix Riesterer.
Hallo hier mal eine Antwort auf beide Vorredner... ;-)
Die Anlayse der HTTP-Header zeigt mir einige HTTP-401-Status (Access denied), nur warum...
Firefox: zeigt mir bis in alle Ewigkeit nach Aufruf der Seite ein Anmeldefenster für den Webserver an...
Opera: baut die Seite nur halb auf und hört mittendrin auf, jedesmal an einer anderen Stelle...
Das ganze geht aber nur mit Response.Buffer = false. Auf True gesetzt geht gar nichts mehr, auch nicht mehr im IE mit HTTP-Fehlermelungen (dann kommt eine völlig leere Seite)!
...ich habe die letzen zwei Stunden damit zugebracht, nacheinander Zeilen im ASP-Script auszukommentieren und damit die Stelle des Fehlers zu finden.
Der (nichtangezeigte) Fehler passiert an einer Stelle, an der Daten aus einer Datenbank-Prozedur verarbeitet werden. Diese Prozedur verarbeitet Daten zu einer hochzuladenen Datei, wie Erstellungsdatum und Dateiname. Lege ich eine neue Datei an, dann funktioniert alles bestens! Diese Datenbank-(SQL-)-Prozedur überprüft aber das Vorhandensein des Dateinamens in einem anderen Datensatz und gibt ggf. als Rückgabewert eine Fehlernummer zurück.
Nach folgenden Muster:
strSQL = "EXEC procedure_1 @parameter1 = "...
adoRec.Open strSQL, adoConn, 1, 3
If Not adoRec.EOF Then
intI = adoRec.Fields(0)
If intI > 0 Then
intDateiID = intI
If Len(adoRec.Fields(1)) > 0 Then strOldFileName = adoRec.Fields(1)
Else
Select Case intI
Case -100
strFehler = "<br>Datensatz wurde nicht gespeichert!"
Case -99
strFehler = "<br>Datensatz wurde nicht aktualisiert!"
Case -98
strFehler = "<br>Dateiname ist bereits in Verwendung!"
Case Else
strFehler = "Unbekannter Fehler...(Rückgabe: " & intI & ")"
End Select
End If
Else
strFehler = "<br>Es wurde kein Datensatz zurückgegeben!"
End If
adoRec.Close
Das Öffnen des Recordset klappt noch, aber sobalds in die SELECT-Anweisung geht ist Schluß!!!
...???
Die Anlayse der HTTP-Header zeigt mir einige HTTP-401-Status (Access denied), nur warum...
Tja, das kannst eigentlich nur du Wissen, wir können nicht hellsehen. Wieso einige? wie sieht denn der Header konkret aus?
Struppi.
wie sieht denn der Header konkret aus?
Vielleicht hilft dir dieses Online Tool:
http://www.sitepoint.ch/online-tools/http-header-online-check/
Struppi.
Danke für den Tip, aber ich habe im IE "ieHTTPHeaders" laufen und im Firefox "Live HTTP Headers"...
...das sollte reichen, oder?
Zu meiner Verwunderung warum dieser (nichtangeziegte!) HTTP-Status 401 auftaucht: der taucht nur in genau einer Konfiguration auf. Ansonsten läuft das Script ohne Fehler.
Es liegt in irgendeiner Form an dem zurückgegebenen Datensatz. Ich weiß nur genau warum...
...die Abfrage bzw. Prozedur auf dem SQL-Server ausgeführt macht genau das was sie soll und liefert auch genau die erwarteten Daten zurück. Ich kann dieses daten im Script sogar auslesen, aber sobalds es in die SELECT-CASE-Geschichet geht ist Schluß! Kommentiere ich den gesamten SELECT-CASE-Bereich aus, dann läuft das Script!
???
Danke für den Tip, aber ich habe im IE "ieHTTPHeaders" laufen und im Firefox "Live HTTP Headers"...
...das sollte reichen, oder?
Naja, wenn du uns den Header mal zeigen würdest, vielleicht.
Zu meiner Verwunderung warum dieser (nichtangeziegte!) HTTP-Status 401 auftaucht: der taucht nur in genau einer Konfiguration auf. Ansonsten läuft das Script ohne Fehler.
Ein 401 Status ist kein Fehler im Skript, sondern du forderst eine geschützte Datei an.
Struppi.
Ein 401 Status ist kein Fehler im Skript, sondern du forderst eine geschützte Datei an.
Und diese Datei ist nur dann geschützt, wenn im Script dieser ominöse Fehler auftaucht? Verstehe ich nicht...
...ich habe aber festgestellt, dass wenn ich die "Seite-kann-nicht-angezeigt-werden"-Seite aktualisiere, dann wird mir die richtige Seite angezeigt???
Beim ersten Aufruf passiert Header-mäßig das:
POST /sites/administration.asp?subm=42 HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/x-silverlight, */*
Referer: http://hostname/sites/administration.asp?subm=42
Accept-Language: de
Content-Type: multipart/form-data; boundary=---------------------------7d817f2a130646
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
Host: hostname
Content-Length: 0
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ASPSESSIONIDACBBRTTA=OMEHLFCBJCGOOLKPHEIPAACH
Authorization: Negotiate TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAFASgKAAAAD3==
HTTP/1.1 401 Access Denied
Server: Microsoft-IIS/5.0
Date: Thu, 23 Oct 2008 12:08:38 GMT
WWW-Authenticate: Negotiate TlRMTVNTUAACAAAAEAAQADgAAAAFgomiskOv4VKZVXoAAAAAAAAAAG4AbgBIAAAABQCTCAAAAA9EAEUAVgBXAEEARwBCAFMAAgAQAEQARQBWAFcAQQBHAEIAUwABABwARABFAFYAVwBBAEcAVwBPAFMAQgBTADAAMgA2AAMAMgBEAEUAVgBXAEEARwBXAE8AUwBCAFMAMAAyADYALgB3AG8AYgAuAHYAdwAuAHYAdwBnAAAAAAA=
Content-Length: 4137
Content-Type: text/html
hostname = von mir geänderter Originalhostname
Beim Aktualisieren holt er dieselbe Seite ohne Zugriffsfehler und arbeitet das Script auch fehlerfrei ab...
[latex]Mae govannen![/latex]
Firefox: zeigt mir bis in alle Ewigkeit nach Aufruf der Seite ein Anmeldefenster für den Webserver an...
Opera: baut die Seite nur halb auf und hört mittendrin auf, jedesmal an einer anderen Stelle...
Das ganze geht aber nur mit Response.Buffer = false. Auf True gesetzt geht gar nichts mehr, auch nicht mehr im IE mit HTTP-Fehlermelungen (dann kommt eine völlig leere Seite)!
Ich weiß nicht, ob es was mit deinem Problem zu tun hat, aber ich hatte einmal ein ähnliches Verhalten der Browser. Daher vermute ich mal nur anhand dieser Symptome.
Allerdings nutze ich php und nicht asp. Jedenfalls konnte ich mein Problem damals lösen, indem ich eine Ausgabepufferung eingebaut habe.
In php ist das ob_start()
bzw falls unterstützt ob_start('ob_gzhandler')
, wie die entsprechenden Befehle in ASP heißen, mußt du selber herausfinden, da ich exakt gar nichts darüber weiß.
Cü,