2009-03-12 7 views
2

Ich habe IIS7 auf meiner Workstation installiert und IIS6-Kompatibilität aktiviert, so dass ich klassische ASP-Seiten testen kann (für einige alte Projekte hier bei der Arbeit).IIS 7 'Server.CreateObject fehlgeschlagen'

Einige Seiten funktionieren, andere nicht.

I erhalten:

Serverobject error 'ASP 0177 : 800401f3' 

Server.CreateObject failed 

/master.central.be/master_connection.asp, line 55 

800401f3 

Auf dieser Linie ich habe:

Set dicTalenLabels = Server.CreateObject("Scripting.Dictionary") 

Wer einige Ideen haben, was todo dieses Problem beheben?

Edit:

Wie von Michael Pryor vorgeschlagen, ich habe einen Vbscript mit ähnlichem Code lief und es war erfolgreich. Es hat also wahrscheinlich etwas mit Berechtigungen. Derzeit versucht herauszufinden, welche Dateien genau ...

Muss ich IUSR zu scrrun.dll hinzufügen? Wenn ich es versuche, habe ich keine Erlaubnis, obwohl ich ein Administrator bin.

Antwort

5

Bearbeitet: Er läuft 32 Bit Vista, also ist es definitiv kein 64-Bit-Problem.

eine test.vbs Datei machen, und dies

Dim o in sie: o = Create ("Scripting.Dictionary")

Dann ist es laufen wie so

cscript.exe Test .vbs

Gibt es den gleichen Fehler?

Wenn dies der Fall ist, schlägt regsvr32 fehl oder etwas stimmt nicht mit den Registrierungsschlüsseln, die es normalerweise in die Registrierung schreiben würde.

Wenn es nicht scheitern, dann ist es wahrscheinlich, dass der Benutzer, den Sie Ihre ASP-Seite ausgeführt haben (standardmäßig es IUSR_machinename ist) keine Berechtigungen entweder ther Registrierungsschlüssel es braucht, oder die tatsächliche DLL

+0

Ich habe versucht, aber ich kann das Verzeichnis syswow64 nicht finden. Ich habe das gesamte System durchsucht und regsvr32.exe kann nur unter c: \ windows \ system32 gefunden werden. Mein System ist Vista 32bit. Danke für den Vorschlag übrigens! –

+0

bearbeitet Antwort zu reflektieren, dass Sie vollständig 32 Bit sind –

+0

Aha wir bekommen, denke ich! Wenn Sie das VBScript ausführen, gibt es idd keinen Fehler. Nun schauen Sie sich die ASP-Berechtigungen an ... Danke, ich wünschte, ich könnte mehr wählen ... –

1

0x800401f3 bedeutet, dass das "Scripting.Dictionary" falsch oder nicht gefunden wurde. Das Scripting.FileSystemObject wird von derselben DLL-Datei bereitgestellt, und ich weiß, dass einige Hosts dies durch Aufheben der Registrierung der DLL-Datei deaktiviert haben, wodurch auch das Dictionary-Objekt deaktiviert würde. Können Sie überprüfen, ob das Scripting.FileSystemObject funktioniert?

Beide Objekte werden von Windows \ System32 \ scrrun.dll (oder Windows \ SysWOW64 \ scrrun.dll bereitgestellt, wenn Sie 32bit auf 64-Bit-Host ausführen). Überprüfen Sie die Berechtigungen für diese Datei und überprüfen Sie, welche Berechtigungen Ihr ASP-Skript ausführt.

+0

Sie haben Recht, Scripting.FileSystemObject funktioniert auch nicht. Ich sehe Benutzer oder Gruppen "System", "Administratoren", "Benutzer", "TrustedInstaller" aufgeführt, jede Idee, die ich hinzufügen sollte? –

+0

@Sander: Könnten Sie versuchen, "regsvr32 scrrun.dll" in einer erhöhten Eingabeaufforderung auszuführen? – sisve

+0

Ich habe versucht, die DLL zu registrieren, hat aber nicht geholfen, es sagt "DLLRegisterServer von scrrun.dll erfolgreich". UAC ist deaktiviert. Danke für den Rat, btw ... Weitere Vorschläge? –