Oliver: Skript läuft nicht auf IIS

Die folgende Perl-Script Routine wird vom Browser mit einem lapidaren "...document contains no data..." quittiert.

Systeme: IIS 5 auf w2k
Verzeichnis: lokales cgi, volle rechte

Anm.: Auf der Kombination linux/apache tut das ganze

Das Skript:

#!c:\perl\bin\perl.exe

printHtmlHeader

print "Content-type: text/html\n\n";

write file to browser

open (TEST, "testfile.htm");
 while (<TEST>) {
  print;
 }
close(TEST);

Ich fummele nun schon den 2ten Tag da dran rum und verzweifle langsam, vielleicht hat jemand eine Idee.

Bereits versuchte Varianten:

1. Header im IIS definieren
2. Zeile 7: open(TEST, "< testfile.htm");
3. Zeile 7: open(TEST, "<< testfile.htm");
4. Zeile 7: open(TEST, $filepath);

Vielen Dank schonmal...

:o) Oli

  1. Hi,

    open (TEST, "testfile.htm");

    open(TEST, 'testfile.htm') or die "Kann testfile.htm nicht oeffnen: $!";

    Dir ist hoffentlich bewußt, daß ein aktuelles Verzeichnis im CGI-Kontext nicht definiert ist. Die Datei kann überall gesucht werden.

    Cheatah

    1. Dir ist hoffentlich bewußt, daß ein aktuelles Verzeichnis im CGI-Kontext nicht definiert ist. Die Datei kann überall gesucht werden.

      ja, voll und ganz .). Hier mal das ganze Ding, ist ja nicht gross:

      #c:\perl\bin\perl.exe

      printHtmlHeader

      print "Content-type: text/html\n\n";

      File oeffnen und schreiben

      open (TEST, "d:\inetpub\wwwroot\intranet\cgi-bin\testfile.htm") or die "wieder nix: $!";
       while (<TEST>) {
        print;
       }
      close(TEST);

      Was mich völlig kirre macht, ist, dass das unter Linux völlig problemlos läuft, unter dem w2k/IIS5/Active Perl 513 (auf alle fälle 5.xx) aber nicht.
      Wenn ich das von der Konsole aus aufrufe, dann printet er den Header und schluss. Auch "<" oder "<<" nutzt nix. Ich habe langsam wohl alle möglichen und unmöglichen Variationen durch :(

      Auch wenn ich das Skript in einem Verzeichnis ablaufen lasse geht nix, deshalb glaube ich nicht, dass ich am Server was falsch konfiguriert habe - kann man beim IIS ja eigentlich auch nicht.

      Alle anderen Perl-Skripte auf dem Server / im Verzeichnis laufen fehlerfrei, nur dieses "open" will er nicht tun.

      Mittlerweile bin ich einfach nur noch ratlos. Hat jemand evtl. ein anderes Skript, das ein File offnet und printet und auf dem IIS 5 läuft? Das muss doch gehen...

      :o( oli

      PS es bringt auch nix, eine komplette HTML-Datei zu öffnen und dafür den HEADER wegzulassen, geht trotzdem nicht.

      1. Hi,

        open (TEST, "d:\inetpub\wwwroot\intranet\cgi-bin\testfile.htm") or die "wieder nix: $!";

        ^       ^       ^

        nimm mal den slash oder \ ...

        Rolf

        1. Hi,

          open (TEST, "d:\inetpub\wwwroot\intranet\cgi-bin\testfile.htm") or die "wieder nix: $!";
                            ^       ^       ^

          nimm mal den slash oder \ ...

          Rolf

          hehe, ganau, siehe mein post von gerade eben...

          Trotzdem vielen Dank :o))

          ;o) oli

          PS Mann, ist mir das peinlich...

      2. Aua, ich hab's. Der Pfad muss so angegeben werden:

        d:/inetpub/wwwroot/intranet/cgi-bin/testfile.htm

        also "/" anstatt "". Dann gehts.

        Was für ein dämlicher Fehler... sorry, das ich Euch mit sowas blästigt habe.

        :o) Oli