Alexander Rehbein: Probleme beim Umstieg von IIS 5 auf 6

Hallo,

ich bin gerade dabei einige Webseiten von IIS 5 (Win2000) auf IIS6 (Win2003) zu verschieben.

Leider machen mir dabei einige Scripte zu schaffen.

Eine Fehlermeldung, die ich die ganze Zeit bekomme ist:

[zitat]
Category=Microsoft VBScript runtime Number=(0x800A01A8) Description=Object required: '' Filename=/shopping/warenkorb_0.asp
[/zitat]

Die Zeilennummer gibt die Zeile:

warenkorb.Close()

an. Wenn ich nun diese Zeile (die offenbar irgendein Objekt - ich vermute die DB-Connection) auskommentiere, dann läuft das Script.

Jetzt werdet Ihr bestimmt fragen, wieso kommentierst Du nicht überall die Anweisungen aus?! Das ist ganz einfach:

1. Mir gehört die Webseite nicht, d.h. ich kann nicht einfach alles ändern.
2. Es wären ungefähr 1000 Files, die ich irgendwie ändern müsste...

Habt Ihr ne Idee, an was das liegen könnte? Ich bin mit meinem Latein zu Ende.

Achja, bevor ich es vergesse: Ich habe weder Ahnung von ASP noch von VBScript :)

In der Hoffnung, dass mir vielleicht irgendeiner helfen kann - viele Grüße
Alex

  1. Hi,

    das Objekt "warenkorb" auf welchem die Methode .close() ausgeführt
    wurde, existiert an dieser Stelle nicht. Es ist nicht in diesem
    Codebereich gültig

    Was ist "warenkorb" für ein Objekt, es muss ja irgendwo instanziert
    worden sein, wenn es eine .Close() methode hat.

    Achja, bevor ich es vergesse: Ich habe weder Ahnung von ASP noch von VBScript :)

    Das macht die Sache natürlich nicht gerade einfacher.

    Etwas mehr Infos müsstest du zu deinem Problem schon rauslassen. :-)

    Gruß, Frank

    1. Hi,

      das Objekt "warenkorb" auf welchem die Methode .close() ausgeführt
      wurde, existiert an dieser Stelle nicht. Es ist nicht in diesem
      Codebereich gültig

      Was ist "warenkorb" für ein Objekt, es muss ja irgendwo instanziert
      worden sein, wenn es eine .Close() methode hat.

      Das Problem ist ganz einfach, dass es vorher auf dem IIS 5 lief, ohne Murren.

      Ich vermute stark das es eine Instanz der DB ist. Also das Handle (bin PHP-Programmierer)

      Gruss
      Alex

      1. Hi,

        wenn es sich bei warenkorb um die Datenbankverbindung handelt, dann sollte es einen Aufruf wie warenkorb.Execute(<sql-statement>) oder ein <recordset>.Open(<sql-statement>, warenkorb, ...) geben. Weiterhin versteh ich dann nicht, warum es beim Schließen der Verbindung zum Fehler kommen sollte, es sei denn, du hast "warenkorb" irgendwo auskommentiert. Wenn es sich bei warenkorb um die Datenbankverbindung handelt, dann gibt es auch ein warenkorb.Open(<parameter>), wobei sich die Parameter auch im Session-/Application-Object befinden können (global.asa), sofern du hier nicht auf .NET migrierst, da sieht es wohl etwas anders aus (config.xml?). Wie auch immer, du solltest danach suchen, wo warenkorb definiert wird, erst dann gibt es eine gute Chnace, dein Problem zu klären.

        bernd

        1. Wie auch immer, du solltest danach suchen, wo warenkorb definiert wird, erst dann gibt es eine gute Chnace, dein Problem zu klären.

          bernd

          Das Problem ist einfach, dass ich am Code nix ändern darf. Natürlich gibt es irgendwo einen Connect, aber das Problem liegt einfach am Schließen. Ich versteh einfach nicht, wieso es vorher auf dem alten Server ohne Probleme lief, aber auf dem neuen eben nicht mehr!

          Ich bin sozusagen in einer Zwickmühle, ich muss das zum Laufen bekommen, kann aber nicht an den Code...

          Gruss
          Alex

          1. Hallo,

            Das Problem ist einfach, dass ich am Code nix ändern darf. Natürlich gibt es irgendwo einen Connect, aber das Problem liegt einfach am Schließen.

            Das Problem liegt nicht am Schließen. Das Problem ist, dass warenkorb ein Objekt mit der Methode Close() darstellen sollte, es aber nicht tut (Object required). Möglicherweise wird das Objekt "warenkorb" nicht erzeugt oder es steht aus irgendwelchen Gründen nicht zur Verfügung.

            Kannst du denn den Code nicht einsehen? Du hast ihn doch auf den neuen Server gestellt.

            Vermutlich stellt wahrenkorb eine Objektreferenz auf ein im Session-Objekt hinterlegte Datenbankverbindung dar, die aber nicht zustande kommt, da möglicherweise dem neuen Server die Rechte fehlen um auf die entspr. ODBC-Daten zuzugreifen oder es ist nicht die nötige MDAC-Version installiert. Es kann so vieles sein und es gibt viele Möglichkeiten mit Datenbanken zu arbeiten.

            Wenn die Datenbankverbindung via ODBC hergestellt wird, dann überprüfe die Berechtigungen für die entspr. Quelle im Schlüssel HKLM\SOFTWARE\ODBC\ODBC.INI (mit RegEdt32.exe). Möglicherweise läuft die Applikation im Benutzerkontext ohne Zugriffsrecht auf den entspr. Eintrag.

            Normalerweise würdest dann auch beim Öffnen der Datenbankverbindung eine Fehlermeldung bekommen, es sei denn, es wird im Quelltext entspr. unterbunden.

            bernd