» Start & Installation » ASP-Grundlagen » VBScript » Datenbanken » Erweiterte Techniken » Fehlercode-Suche » FAQ » Forum für aspfehlercodes » ASP » JavaScript » ASCII & ANSI » HTTP-Statuscodes » Codepage » LCID » VBScript » JScript
|
Link: Wichtiger Hinweis in eigener Sache!
Leider lässt sich ein Fehler nicht vermeiden. Manchmal kann man sofort erkennen, was falsch
ist, aber oftmals kennt man die Lösung nicht. Deshalb habe ich viele Fehlercodes gesammelt,
um Ihnen dazu eine Lösung anbieten zu können. Auf dieser Seite möchte ich Ihnen aufzeigen,
wie die Suche nach einer Lösung funktioniert, was Sie bei Fehlern beachten müssen und mehr.
Viel Glück bei der Fehlersuche!
In meinem Quelltext ist ein Fehler aufgetreten, was nun?
Ich habe Windows 2000/XP, was muss ich beachten?
Wie sieht eine korrekte Eingabe aus?
Der Fehlercode wurde in den aspfehlercodes nicht gefunden, und jetzt?
Ich möchte einen unbekannten Fehlercode melden, wie geht das?
In meinem Quelltext ist ein Fehler aufgetreten, was nun?
Die Welt der Programmierung ist sehr umfangreich, damit gibt es leider auch sehr viele
Fehler, und auch sehr unterschiedliche. Angefangen von einer falschen If-Abfrage bis hin
zu einem Fehler bei einer Datebank-Abfrage ist die Fehlerbehandlung sehr komplex.
Damit man als Programmierer den Fehler besser versteht, wird zu jedem Fehler ein Text
angezeigt, und eine Nummer, wie z.B. 80004005. Diese Hexadezimale Zahl beschreibt mind. eine
Fehlermöglichkeit. Im Falle des Fehlercodes 80004005 kann dies sogar sehr viele
Fehlermöglichkeiten beschreiben, es dürften (geschätzt) wohl mehr als 30 sein.
Intern wird der Fehlercode jedoch nicht als Hexadezimale Zahl verarbeitet, sondern als
Dezimale Zahl, der Hexadezimale Wert 80004005 ergibt den Dezimalen Wert -2147467259. Nur ist
diese Nummer etwas schwer zu merken, da ist 800040005 wesentlich besser. Bei manchen
Fehlercodes wird noch zusätzlich eine 3 bzw. 4-stellige Zahl angegeben, z.B. 0221
oder 221. Diese kann noch zusätzliche Information liefern.
Bei jedem Fehlercode wird noch ein kurzer Text ausgegeben, durch diesen können Sie ebenfalls
noch wichtige Informationen zum aufgetretenen Fehler erhalten, z.B.
Die angegebene 'Option Explicit '-Option ist
unbekannt oder ungültig. Ungültige @ Kommandozuweisung |
Nehmen Sie den Text aber nicht immer allzu ernst, manchmal beschreibt der Text irgendetwas
anderes als der Fehler. Beispiel:
1 2 3
| If 1 = 0 then end sub End If |
Dies verursacht folgenden Fehler:
1 2 3 4 5
| Kompilierungsfehler in Microsoft VBScript (0x800A03F4) 'If' erwartet /Test.asp, Zeile 15, Spalte 4 end sub ---^ |
Eine weitere Problematik ist die Angabe der Zeile, wo der Fehler aufgetreten sein soll. Hier
wird nicht immer die richtige Zeile angegeben, wie z.B. im obigen Beispiel. Weitere
Probleme können bei sehr grossen ASP-Dateien auftreten. Beinhaltet die ASP-Datei mehr als
zirka 500 Zeilen (kann vom Betriebssystem & anderen Dingen abhängen), kann die Angabe der
Zeile bei jeder Fehlerangabe mehr oder weniger stark falsch liegen. Es ist dann durchaus
möglich, daß die Fehlerverursachenden Zeile um z.B. 200 Zeilen oder mehr von der genannten
Zeile variiert.
Ich habe Windows 2000/XP, was muss ich beachten?
Seit Windows 2000 wird bei einem Fehler eine andere Datei namens 500-100.asp aufgerufen,
welche dann die Fehlermeldung ausgibt. Damit haben Sie die Möglichkeit, Fehler nach Ihren
Wünschen zu behandeln und auszugeben. Leider hat Microsoft in dieser Datei einen Fehler
gemacht, wenn die Fehlermeldung wie nachfolgend aussieht, ist Ihre 500-100.asp defekt.
1 2 3 4 5 6 7
| Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea' Syntaxfehler /iisHelp/common/500-100.asp, line 129 elseIf (objASPError.Description > "") Then ^ Serverobjekt- Fehler 'ASP 0177 : 800401f3' Server.CreateObject-Fehler |
Die Datei 500-100.asp finden Sie im Verzeichnis C:\Winnt\Help\iishelp\Common\.
Das Problem bei der fehlerhaften Datei ist es, daß zuerst ein Fehler angeben wird, welcher
nicht durch Ihre ASP-Seite verursacht wurde, sondern durch die 500-100.asp, weshalb
oftmals nach dem falschen Fehler gesucht wird.
Der Fehlercode "800a03ea" aus Zeile 1 bezieht sich hierbei nicht auf Ihre
ASP-Seite, sondern auf die fehlerhafte 500-100.asp. Der Code aus Ihrer ASP-Seite
ist in Zeile 6: 'ASP 0177 : 800401f3. Wenn Sie also auf Fehlersuche sind,
beachten Sie nicht den Fehlercode 800a03ea, sondern den aus Zeile 6. Ich habe diese Datei
500-100.asp korrigiert 2 unterschiedliche Versionen stehen Ihnen zur Verfügung:
Version 1 beinhaltet das Design der originalen Datei. Sie sollte auf jeden Fall bei
"Publikumsverkehr" eingesetzt werden. Sie beinhaltet mehr Text, z.B. die übliche
Fehlermeldung "Die Seite kann nicht angezeigt werden", ähnlich wie die der HTTP 404-Meldung.
Aber natürlich auch die Fehlermeldung und der Fehlercode, welche den Fehler Ihrer
ASP-Seite darstellt. Ist der Rechner nur ein Test- bzw. Ihr Entwicklungsrechner,
wäre die Version 2 wohl die richtige. Sie verzichtet auf ein aufwendiges
Design, und zeigt nur die Fehlermeldung Ihrer ASP-Seite.
Version 1 herunterladen
Version 2 herunterladen
Wie sieht eine korrekte Eingabe aus?
Nachdem der Fehler aufgetreten ist, und Sie hier auf der Suche nach einer Lösung sind,
stellt sich für Sie die Frage, was nun? Bei jedem Fehler wird ein Fehlercode ausgegeben,
wie schon oben erwähnt. Der Fehlercode bzw. die Nummer kann z.B. -2147467259 lauten, zumeist
aber wird eine Hexadezimale Zahl angegeben. So wird statt der Dezimalen Zahl -2147467259
die Hexadezimale Zahl 80004005 ausgegeben. Auch möglich ist eine drei bzw. vierstellige Zahl,
z.B. 0221 oder 221.
All diese Zahlen, -2147467259, 8004005, 221 oder 0221 können Sie angeben. Statt 80004005
können Sie auch 0x80004005 angeben. Allerdings: Sie können nur eine Zahl angeben, Sie können
weder nach mehreren Fehlercodes gleichzeitig suchen, noch unterschiedliche Nummern für
den gleichen Fehlercode angeben.
Die Suchangabe -2147467259(8004005) ist genauso falsch wie 8004005(0221), oder z.B.
"80004005 800a03ea". Nun steht aber nicht jeder Fehlercode nur für einen einzigen Fehler,
sondern es können viele unterschiedliche Fehlermöglichkeiten auftreten, dennoch wird nur ein
fehlercode angegeben. Wenn Sie z.B. nach dem Fehlercode 80004005 suchen, werden mehrere
Möglichkeiten angezeigt.
In einer dann dargestellten Tabelle werden mehrere Möglichkeiten zur Auswahl angeboten. Zu
jedem Fehler wird noch eine Kurze Beschreibung mit ausgegeben z.B.: "Zeitlimit für Skript
wurde erreicht". Sie können nun nach der Kurzbeschreibung suchen, oder einer kurzen Nummer
(z.B. 113).
Der Fehlercode wurde in den aspfehlercodes nicht gefunden, und jetzt?
Zwar ist die Fehlercode-Sammlung bei asphelper.de eine der grössten rund um ASP, worin auch
viele Fehler behandelt werden welche z.B. in der MSDN nicht behandelt werden, dennoch kann es
vorkommen daß manche Fehler noch nicht eingetragen sind. Die Sammlung lebt auch davon, daß
die Besucher noch nicht eingetragene Fehler melden. Wenn Sie also einen Fehler haben, der
noch nicht behandelt wird, so schreiben Sie mir diesen. Ich habe Ihnen dazu
ein Forum bereitgestellt.
Falls Sie noch keine Lösung haben, so kann man Ihnen dort eventuell bei der Lösung helfen. Falls
Sie die Lösung bereits ermittelt haben, teilen Sie auch diese bitte auf jeden Fall mit, so hat der
nächste Suchende auch etwas davon. Ob mit oder ohne Lösung: ein bisschen Quellcode ist
unbedingt notwendig, idealerweise mehrere Zeilen.
Ich möchte einen unbekannten
Fehlercode melden, wie geht das?
Wenn Sie einen Fehlercode haben, der noch nicht in den ASPFehlercodes ist, können Sie
diesen im Forum schreiben. Dafür steht Ihnen ein Forum zur
Verfügung.
Die Fehlermeldung, bei den meisten Fehler wird noch zusätzlich ein Text ausgegeben,
auch diesen bitte angeben. Beim Quelltext gilt: lieber etwas zuviel als zuwenig. Ein
Beispiel. Es wird ein Fehler beim öffnen einer Datenbank angezeigt, die fehlerverusachende
Zeile scheint diese zu sein:
Angenommen, der Fehler liegt in der SQL-Anweisung, dann wird der Fehler zwar
in dieser Zeile tatsächlich verursacht, denn die SQL-Anweisung wird ja erst beim Öffnen
der Datenbank ausgeführt. Ihr Fehler liegt aber in der Zusammensetzung der SQL-Anweisung.
Somit ist für die Lösungssuche das Zusammensetzen der SQL-Anweisung ebenso unbedingt
erforderlich. Deshalb lieber ein paar Zeilen zuviel.
Wenn Sie eine Lösung für den Fehler gefunden haben, auch dann sollten Sie den Fehlercode
ebenfalls inklusive aller Informationen im Forum veröffentlichen, so daß der nächste Besucher
davon profitieren kann. Ausserdem werden noch nicht vorhanden Fehlercodes in die Datenbank
eingetragen.
|
|