Include will nicht
Norbert
- asp.net
Hallo,
in einer Anwendung wird reihenweise includiert, was auf dem alten Server auch funktioniert haben soll. Auf dem neuen Server geht es definitiv nicht.
z:B.:
vorher ging:
<!-- #include file="../Lib/test.lib.asp" -->
jetzt geht nicht:
<!-- #include file="../Lib/test.lib.asp" -->
<!-- #include file="..\Lib\test.lib.asp" -->
<!-- #include file="C:\Inetpub\vhosts\vwi\httpdocs\Lib\test.lib.asp" -->
Die Dateien selbst bringen alle das erwartete Ergebnis, nur includieren darf man sie nicht.
Hat da eventuell jemand eine Idee ...
Ach-ja,und wie ist das mit dynamischen Includes,
wenn die zu includierende Datei in einer Variablen steht?
Geht sowas mit ASP ueberhaupt ?
Gruss und Dank
Norbert
hi,
Die Dateien selbst bringen alle das erwartete Ergebnis, nur includieren darf man sie nicht.
Und "darf man nicht" äußert sich wie - kommt die Polizei vorbei, oder ...?
gruß,
wahsaga
Hi,
Und "darf man nicht" äußert sich wie - kommt die Polizei vorbei, oder ...?
schlimmer,
die Polizei gibt zielfuehrende Hinweise ... :-((
Bei der kurzen Variante:
HTTP 500 - Interner Serverfehler
Und bei der langen Variante:
An error occurred on the server when processing the URL.
Gruss und Dank
Norbert
Moin!
Und "darf man nicht" äußert sich wie - kommt die Polizei vorbei, oder ...?
schlimmer,
die Polizei gibt zielfuehrende Hinweise ... :-((Bei der kurzen Variante:
HTTP 500 - Interner ServerfehlerUnd bei der langen Variante:
An error occurred on the server when processing the URL.
Und was sagt das Serverlogfile dazu (auch Ereignisprotokoll genannt)?
- Sven Rautenberg
Hallo Sven,
Und was sagt das Serverlogfile dazu (auch Ereignisprotokoll genannt)?
Fehlermeldungen:
1. die kurze Variante erzeugt einen 500-er Error
und im Logfile: |32|ASP_0131|Disallowed_Parent_Path
2. die Langform ergibt: An error occurred on the server when processing the URL.
und im Logfile: |32|ASP_0126|Include_file_not_found
Nun habe ich ja nur FTP zur Verfuegung und kann ueber den Pfad unterhalb der FTP-Root nur Vermutungen anstellen. Aber mit
doro = Server.MapPath("/") & "\Lib\test.lib.asp"
response.write doro
kommt
C:\Inetpub\vhosts\xn--vwi-pla.de\httpdocs\Lib\test.lib.asp
heraus und "httpdocs" sehe ich im FTP-Client.
Gruss und Dank
Norbert
... die includes stehen doch ausserhalb vom ASP-Code, also wird das include doch mit SSI durchgefuehrt, und SSI kann man abstellen.
Preisfrage:
Wo stellt man das an ?
Und wie bekommt man heraus, ob es angestellt ist ?
Gruss und Dank
Norbert
hi,
Fehlermeldungen:
- die kurze Variante erzeugt einen 500-er Error
und im Logfile: |32|ASP_0131|Disallowed_Parent_Path
Disallowed_Parent_Path klingt doch recht deutlich danach, dass dein Script keine Rechte hat, die Scripte von ihrem Ablageort aus einzubinden.
- die Langform ergibt: An error occurred on the server when processing the URL.
und im Logfile: |32|ASP_0126|Include_file_not_found
Vermutlich Folgefehler aus ersterem.
gruß,
wahsaga
Hai,
Vermutlich Folgefehler aus ersterem.
nee,
also entweder Variante A oder Variante B.
Man includiert ja nicht eine Datei auf zwei Arten ...
Das Ganze ist sowieso sehr mysterioes, weil der IIS die Logfiles erst viel spaeter auslagert. Man hat keinen Zugriff auf aktuelle Daten. Bin jetzt dabei den Lib-Ordner as Unterordner von ASP einzurichten. Alle Rechteprobleme sollte das dann beseitigen, hofft man jedenfalls.
Gruss Norbert
Moin!
- die kurze Variante erzeugt einen 500-er Error
und im Logfile: |32|ASP_0131|
"Disallowed_Parent_Path" - das ist dein Stich- und Suchwort!
- Sven Rautenberg
Hi Norbert
<!-- #include file="../Lib/test.lib.asp" -->
Hat da eventuell jemand eine Idee ...
Versuchs doch mal mit virtual.
Ach-ja,und wie ist das mit dynamischen Includes,
wenn die zu includierende Datei in einer Variablen steht?
Das geht nicht: SSI werden vor dem ASP-Code abgearbeitet.
Geht sowas mit ASP ueberhaupt ?
Jein. Seit Windows 2K könntest du es mit Execute() versuchen. Ob du damit Funktionen definieren kannst, die ausserhalb verwendet werden können weiss ich jedoch nicht.
Wir inkludieren hier auch bis zu mehrere hunder Kilobytes an Code, was ganz gut funktioniert. Ob das mit Server.Execute() auch gut ginge müsste man ausprobieren. Moment mal... Server.Execute() geht nicht: Variablen und Funktionen sind ausserhalb nicht verfügbar. Ich hab doch mal was in die Richtung gemacht... Achso: es gibt noch eine Execute-Funktion, die ausserhalb des Server-Objekts liegt, die hatte ich eigentlich gemeint. Der kannst du direkt Code-Strings übergeben. Habe auch das mal ausprobiert, funktioniert jedoch auch nicht:
Microsoft VBScript compilation error '800a0400'
Expected statement
/test.asp, line 20
Besagte Linie 20: Call Execute(oFile.ReadAll())
Schade, schade. Scheint an den Kommentaren zu scheitern. Aber zeilenweise Rausfiltern geht nicht, weil sonst die Funktionen nicht an einem Stück rein kommen.
Gruss
Tom