Scriptverarbeitung friert ein ?!
Frank
- asp.net
0 Michael Schröpl0 Frank0 Thomas Rupp0 Frank
0 Stefan Falz0 Frank
Hi,
ich bin gerade am basteln und stehe jetzt vor einem Problem, daß das Script irgendwie stehen geblieben ist, als würde sich der Server an irgendetwas die Zähne ausbeissen. Ein Tip wie "Typisch ASP und Windows" würde mir jetzt nicht viel weiterhelfen, da ich etwas ähnliches schon in anderen Sites hinbekommen habe, sprich es ist mehr ein Programmiertechnisches Problem meinerseits
Hier etwas Code
currDesignFolder = Application("$systemroot$") & "templates" & rs_gdt("Designfolder")
currDesignFile = currDesignFolder & rs_gdt("Designvorlage")
'designFile wird zu ttpl_html (toptemplate_html)
IF fso.FileExists(currDesignFile) <> True THEN
Response.Write "<h3>Designvorlagendatei nicht vorhanden - Generierung gestoppt</h3>"
set rs_recset = nothing
set rs_gdt = nothing
exit sub
END IF
Response.Write "currDesignFolder: " & currDesignFolder & "<br>" & "currDesignFile: " & currDesignFile & "<br> <br>"
Bis hierhin funktioniert es wunderbar!
Ausgabe:
currDesignFolder: I:\Projekte\miniCMS\templates\standard\ currDesignFile: I:\Projekte\miniCMS\templates\standard\navigation.htm
set ttpl = fso.OpenTextFile(currDesignFile,forReading)
ttpl_html = ttpl.ReadAll
ttpl.close
set ttpl = nothing
Response.Write "<p>Datei ausgelesen</p>"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Das wird nicht mehr geschrieben, also muß er irgendwas davor monieren. Ich habe aber testweise schon mal die Berechtigungen ab \miniCMS.... für IUSR auf vollzugriff gesetzt. Das hat es aber anscheinend auch nicht gebracht. Einen Fehler bringt er nicht. Das FileSystemObject ist mit Server.CreateObject und vorher mit CreateObject angelegt worden, keine Veränderung.
Hat jemand eine Erklärung dafür?
Tschau, Frank
Hi auch,
Bis hierhin funktioniert es wunderbar!
set ttpl = fso.OpenTextFile(currDesignFile,forReading)
ttpl_html = ttpl.ReadAll
ttpl.close
set ttpl = nothing
Response.Write "<p>Datei ausgelesen</p>"
Das wird nicht mehr geschrieben
Wie wäre es mit Ausgaben nach jeder Zeile?
Klappt das Öffnen?
Klappt das Lesen?
Klappt das Schließen?
Klappt das Freigeben?
Dein Programm ist bisher auffällig wenig robust.
also muß er irgendwas davor monieren.
Kommt darauf an, wer "er" ist und wie sich das "monieren" äußert.
Was liefert DeinWebserver denn so an Debug-Informationen?
Das FileSystemObject ist mit Server.CreateObject und vorher mit
CreateObject angelegt worden, keine Veränderung.
Hat jemand eine Erklärung dafür?
Das Problem ist letzten Endes, daß Du mit dem FileSystem-Objekt eine
black box verwendest. Vor dem Ansprechen tut es, nachher nicht.
Reinsehen kannst Du anscheinend nicht.
Wenn dies alles zutrifft, dann ist Dein Problem nicht systematisch lösbar.
Also:
Viele Grüße
Michael
Hallo,
danke für deine Anteilnahme.
Wie wäre es mit Ausgaben nach jeder Zeile?
Ja, das hab ich gerade nochmal in einzelschritten gecheckt. Ab >fso.OpenTextFile< will er nicht mehr.
Klappt das Öffnen?
Klappt das Schließen?
Klappt das Freigeben?
Anlegen des Objektes funktioniert wunderbar, schließen (gleich) danach auch.
Klappt das Lesen?
Genau das nicht, nur noch FileExists ausnahmsweise ?!!
Dein Programm ist bisher auffällig wenig robust.
Ich hab die Zeilen des Originalscripts auch ziemlich gekürzt. Aber selbst wenn ich eine einzelne Datei nur mit Objekt anlegen, Öffnen, Schließen bastele und ausführe, hängt er sich förmlich auf.
Kommt darauf an, wer "er" ist und wie sich das "monieren" äußert.
er = IIS, monieren = er schreibt alle Zeilen bis OpenTextFile und danach bringt er in der IE-Statusleiste nur noch "Öffne .....", Opera schreibt nur "Sende Anfrage an....."
Was liefert DeinWebserver denn so an Debug-Informationen?
Nix, das ist ja das Problem, er arbeitet weiter, bis er zum ScriptTimeout gelangt und da bringt er halt den ASP Fehler für Script-Timeout.
Auch wenn ich das NTFS umgehe und einfach versuche von einer FAT32 Partition zu lesen, das gleiche Resultat.
Ich hab jetzt nochmal meinen Laptop mit Win2K aus meinem Büro rangeholt und auf diesem OEM-installierten Win2K die Site eingerichtet, selbes Problem.
Probiere ich es bei meinem ISP, kein Problem. Lesen, schreiben alles...
(ich habe keine Ahnung davon, da müßtest Du schon Dein Manual fragen)
Ich hab alles von MSDN bis Google abgegrast, kein Hinweis auf irgendeinen Bug im IIS.
- oder Deine Entwicklungsumgebung verdient es, hinterfragt zu werden
(aber das wolltest Du ja nicht hören)
Nee, eigentlich nicht, weil im Büro hab ich noch einen Rechner stehen, auch Win2K, auf dem funktioniert das auch alles problemlos.
Trotzdem vielen Dank für deine Bemühungen.
Viele Grüße
Frank
Hi Frank,
ich bin zwar kein ASP Guru, spiele aber auch gerade in dieser Ecke rum.
Mein dickes ASP Buch schlägt folgendes vor:
' Verhindern, dass andere Fehler die Ausführung unterbrechen
On Error Resume Next
.. Dein Befehl ..
' Prüfen ob ein Fehler aufgetreten ist
If Err.Number <> 0 ...
Mit Err.Description bzw. Err.Source kann dann auf die Beschreibung bzw. den Namen des Objektes zugegriffen werden.
HTH
Thomas
Hi Frank,
ich bin zwar kein ASP Guru, spiele aber auch gerade in dieser Ecke rum.
Mein dickes ASP Buch schlägt folgendes vor:
' Verhindern, dass andere Fehler die Ausführung unterbrechen
On Error Resume Next
.. Dein Befehl ..
' Prüfen ob ein Fehler aufgetreten ist
If Err.Number <> 0 ...
Mit Err.Description bzw. Err.Source kann dann auf die Beschreibung bzw. den Namen des Objektes zugegriffen werden.
HTH
Thomas
Hi,
danke für deine Bemühung.
Ich hab das mal ausprobiert, er hängt weiter an der selben Stelle.
Wenn er einen Script-Fehler hätte, dann würde er mir ihn an dieser Stelle auch schon bringen, wenn er das Kommando abgearbeitet hätte.
Aber er ("IIS") scheint sich da die Zähne auszubeißen.
Per VBS-Script die Prozedur laufen zu lassen klappt fantastisch.
Yo, ich fürchte dann doch langsam, daß irgendwas an der Installation des IIS faul sein muß.
Mal schauen, vielleicht kann ich mich zu einer Neuinstallation durchringen.
Danke, tschau, Frank
Hallo Frank,
set ttpl = fso.OpenTextFile(currDesignFile,forReading)
ttpl_html = ttpl.ReadAll
ttpl.close
set ttpl = nothing
Response.Write "<p>Datei ausgelesen</p>"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
evtl. hilft: http://www.aspfaq.de/index.asp?FID=115&ELE=10011
Tschau, Stefan
Hallo Frank,
set ttpl = fso.OpenTextFile(currDesignFile,forReading)
ttpl_html = ttpl.ReadAll
ttpl.close
set ttpl = nothing
Response.Write "<p>Datei ausgelesen</p>"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
evtl. hilft: http://www.aspfaq.de/index.asp?FID=115&ELE=10011
Tschau, Stefan
Hi hallo,
ich hab gerade schon auf Spotlight den Tip gelesen - hat funktioniert!
Danke auch an dieser Stelle nochmal!
Frank