Warum ist das nicht mit #include arbeiten .asp-Seite in IIS 7.5?
Sah ich eine ähnliche Frage, aber meine ist etwas anders:
Ich bin bekommen intermittierende Ergebnisse, die mit #include-Dateien arbeiten, die auf einem IIS 7.5 server (R2008 V2). Meine enthält nur arbeiten, wenn Sie in den gleichen Ordner wie das aktuelle .asp-Seite, oder in einem Unterordner der aktuellen Seite. Dies ist unpraktisch, da möchte ich Sie alle behalten im /lib-Unterordner, aus der main-Seite.
Meiner Konfiguration: ich habe einen Ordner mit dem Namen DCN, sitzt rechts unterhalb des wwwroot-Ordner. Es gibt mehrere Dateien im /lib-Ordner innerhalb des DCN-Ordner, so wird der absolute Pfad c:\inetpub\wwwroot\dcn\lib\my_include_file.asp. Wenn ich eine ASP-Seite in der DCN-Ordner, die ich ziehen kann, gehören die Dateien aus dem /lib-Unterordner. Allerdings, wenn ich öffnen Sie eine ASP-Seite von der DCN/trouble-Ordner (wie "DCN\Schwierigkeiten\Suchen.asp"), und die Suche.asp-Seite ist eine Linie, die sagt:
<!--#include file="../lib/my_include_file.asp"-->
include schlägt fehl, und ich bekomme einen 500-Fehler.
Habe ich auch versucht:
<!--#include file="/lib/my_include_file.asp"-->
mit dem gleichen Ergebnis. Dasselbe mit:
<!--#include file="/DCN/lib/my_include_file.asp"-->
Änderte ich die slashes nach backslashes, mit dem gleichen Ergebnis. Ich ging sogar so weit, zu versuchen:
<!--#include file="c:\inetpub\wwwroot\dcn\lib\my_include_file.asp"-->
(aus lauter Verzweiflung), aber bin noch immer die gleichen Ergebnisse.
Wenn ich einen Unterordner erstellen, in dcn\trouble Ordner kann ich Dateien von es, aber offensichtlich ist dies nicht ideal.
Anregungen würde sehr geschätzt werden. Ich kann mir nicht helfen, aber denke, das ist etwas trivial. Vielen Dank im Voraus!
- Haben Sie cheched die ACL in den lib-Ordner?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Yots richtig ist, es klingt wie übergeordnete Pfade sind ausgeschaltet. Wenn Sie nicht bekommen kann diese drehte sich auf die Verwendung virtueller Pfade statt:
Basierend auf Ihre Frage, wo Sie feststellen, dass die include-Dateien sind in
/DCN/lib
dann tun Sie das folgende:Bei der Verwendung von virtuellen Pfaden, die Sie angeben müssen, der vollständige virtuelle Pfad zu der Datei, also von der Wurzel der Website. Dies ist nicht ideal, wenn Sie Ihre Anwendung in einen Unterordner auf Ihrem Entwicklungscomputer, wo Sie sind mit XP und dann die Bereitstellung in das root einer Produktionsmaschine. Das sagte IIS7 unter Windows Vista oder Windows 7 erlaubt die Erstellung von mehreren Seiten jetzt **.
Bei der Verwendung einer Pfad-Typ
File="..."
, mit dem Namen muss sich auf einen relativen Pfad zu dem Ordner mit dem #include. Zum Beispiel:Die Richtlinie
<!-- #include file="my_include.asp" -->
gehörenmy_include.asp
aus dem gleichen Ordner.Die Richtlinie
<!-- #include file="lib/my_include.asp" -->
gehörenmy_include.asp
aus dem Ordnerlib
unterhalb des aktuellen Ordners, in dem das Skript ausgeführt wird.Die Richtlinie
<!-- #include file="../my_include.asp" -->
gehörenmy_include.asp
aus dem Ordnerlib
über dem aktuellen Ordner (den übergeordneten Ordner), wo das Skript ausgeführt wird.Die Richtlinie
<!-- #include file="../lib/my_include.asp" -->
gehörenmy_include.asp
aus dem Ordnerlib
ist ein Kind des übergeordneten Ordners (oder des aktuellen Ordners Geschwister).Den letzten beiden Beispielen wird nicht funktionieren, wenn übergeordnete Pfade aktiviert sind.
** Ich bin mir bewusst, es gibt hacks, um mehrere IIS-Websites in XP IIS5.1.
Ich glaube, dein problem ist, dass die übergeordneten Pfade sind deaktiviert, die standardmäßig in IIS.
Haben Sie zwei Möglichkeiten:
Für details Lesen Sie in diesem Artikel aus der IIS-Website
http://learn.iis.net/page.aspx/566/classic-asp-parent-paths-are-disabled-by-default/
<!--#include file="/lib/my_include_file.asp"-->
sollte funktionieren, selbst wenn Übergeordnete Pfade deaktiviert sind<!-- #include virtual="..." -->
statt.<!--#include file="..." -->
unterstützt nur relative Pfade.Was über einen
#include virtual
? wenn er liest:es sollte das
file.inc
in den include-Ordner unter mysite? Ich habe aktiviert und deaktiviert übergeordnete Pfade und versucht, über eine million Dinge. Ich bekomme noch immer eineasp 0126 error
für die Datei nicht gefunden. Ich kann swtich es um include-Datei-und dann findet er es, aber dann die Datei.inc hat eine Reihe von anderen schließt und dann kann Sie nicht finden, egal wie ich es ändern zu include-Datei oder virtuellen. Es funktioniert im IIS 6, aber nicht von IIS 7, dass ich in Bewegung bin, diese Website zu. Es ist eine klassische asp-Seite mit meist alles, was in den include-DateienHabe ich mysite in die
Default Web site\dept_Sites\mysite
Lage.