In Bezug auf das ähnliche Problem, dass ActiveX keine Scripting.FileSystemObject-Objekte erstellen kann, sind die Lösungen im Allgemeinen ähnlich. Die Hauptsache ist, einen klaren Kopf zu haben: Betrachten Sie zunächst das Problem der Komponentenregistrierung und zweitens das Problem der Komponentenberechtigung Überprüfen Sie die Serverkonfiguration und schauen Sie sich den Quellcode Ihres Programms sorgfältig an
Ich bin heute auf ein Problem gestoßen: Eine ASP-Website hat beim Generieren einer statischen Seite einen Fehler gemeldet:
Microsoft VBScript-Laufzeitfehler „800a01ad“
ActiveX-Komponente kann kein Objekt erstellen: „Scripting.FileSystemObject“
Tatsächlich tritt dieses Problem relativ häufig auf. Der Grund für den Fehler ist, dass der Server die FSO-Komponente nicht unterstützt. Diese Situation tritt häufig in gängigen ASP-CMS-Systemen wie Fengxun, Kexun und Dongyi auf, da sie alle statische Generierungsmechanismen verwenden und FSO-Komponentenunterstützung erfordern. Bevor Sie beginnen, müssen Sie zunächst die ASP-Probe verwenden, um die Unterstützung des Servers für FSO-Komponenten zu testen. Normalerweise verwenden wir einen Windows 2003-Server.
Im Folgenden werde ich über meine spezifischen Lösungsideen sprechen und jeden möglichen Grund für die Fehlermeldung analysieren. Ich hoffe, dass dies für Sie hilfreich ist.
1) Die scrrun.dll-Datei ist nicht registriert. Gehen Sie zum Ordner C:/WINDOWS/system32 und prüfen Sie, ob eine scrrun.dll-Datei vorhanden ist. Wenn nicht, gehen Sie zum Ordner i386 im Systeminstallationsverzeichnis und kopieren Sie ihn. Als nächstes starten Sie das Menü und führen den folgenden Befehl aus, um die FSO-Komponente zu registrieren:
regsvr32.exe %windir%/system32/scrrun.dll Dadurch kann der Server die FSO-Komponente unterstützen. Wenn Sie die FSO-Komponente deaktivieren möchten, führen Sie den folgenden Befehl aus:
regsvr32.exe /u %windir%/system32/scrrun.dll ist normal und Ihr Problem wird gelöst.
2) Wenn es immer noch nicht funktioniert, prüfen Sie, ob das ActiveX-Steuerelement im Browser deaktiviert ist. Normalerweise passiert das nicht, es sei denn, es handelt sich um einen Server, die Sicherheitsstufe wird streng eingeschränkt. Stellen Sie in diesem Fall einfach die Sicherheitsstufe des Browsers auf mittel-niedrig ein.
3) Ihr Server selbst unterstützt keine FSO-Komponenten.
4) Berücksichtigen Sie Berechtigungsprobleme. Führen Sie die folgenden Vorgänge nacheinander aus:
Startmenü -> Ausführen -> regedit -> OK, suchen Sie nacheinander nach HKEY_CLASSES_ROOT/Scripting.FileSystemObject, klicken Sie mit der rechten Maustaste auf Berechtigungen, fügen Sie die Benutzerberechtigungen „Jeder“ und „Internet-Gastkonto“ (IUSR...) hinzu und starten Sie IIS neu, um das Problem zu lösen.
5) Anhang: Lösung des Problems, dass der Server die Scripting.Dictionary-Komponente nicht unterstützt
Durch die oben genannten Schritte können Sie das Problem des Fehlers bei der Erstellung von ActiveX-Objekten perfekt lösen. Wenn immer noch das Problem besteht, dass die Scripting.Dictionary-Komponente nicht unterstützt wird, ist die Lösung ähnlich wie im ersten Schritt und führt den Befehl regsvr32.exe %windir%/system32/scrrun.dll aus. Wenn es noch nicht gelöst ist, prüfen Sie das Berechtigungsproblem. Sie können Schritt 4 befolgen, um Berechtigungen für dieses Objekt in der Registrierung hinzuzufügen. Ziehen Sie Schlussfolgerungen aus einem Beispiel und wissen Sie, wie Sie es lösen können, wenn Sie erneut auf ähnliche Probleme stoßen!
6) Anhang: Lösung für den Server.CreateObject-Fehler. Wenn wir das Programm ausführen, werden wir möglicherweise mit ähnlichen Fehlern wie folgt aufgefordert:
Serverobjektfehler „ASP 0177: 800401f3“
Server.CreateObject ist fehlgeschlagen
/include/test.asp, öffnen Sie test.asp in Zeile 38, überprüfen Sie den Quellcode in der Nähe von Zeile 38 und prüfen Sie, ob in der Schreibmethode zum Erstellen des Objekts ein Fehler vorliegt. Die Standardschreibmethode sollte sein:
<% Set fso = Server.CreateObject(Scripting.FileSystemObject) %>
Diese Situation wird meist durch Unachtsamkeit des Programmierers verursacht. Tatsächlich kann die Scripting.FileSystemObject-Komponente umbenannt werden, was die Sicherheit des Servers erhöht. Wir können sie in der Registrierung wie folgt ändern:
Startmenü->Ausführen->regedit->OK, suchen Sie nacheinander nach HKEY_CLASSES_ROOT/Scripting.FileSystemObject, klicken Sie zum Umbenennen mit der rechten Maustaste und führen Sie dann den ersten Schritt aus, um die Datei scrrun.dll zu registrieren. Beachten Sie, dass Sie beim Schreiben des Programms das Objekt mit diesem neuen Namen erstellen müssen, andernfalls wird ein Fehler gemeldet. 7) Anhang: IIS wird mit Komponenten geliefert
Haben Sie herausgefunden, dass die Ursachen dieser Probleme alle in den IIS-eigenen Komponenten liegen? Hier sind einige gängige IIS-Komponenten als Referenz:
MSWC.AdRotator
MSWC.BrowserType
MSWC.NextLink
MSWC.Tools
MSWC.Status
MSWC.Zähler
SWC.PermissionChecker
WScript.Shell
Microsoft.XMLHTTP
Scripting.FileSystemObject
ADODB.Connection Zusammenfassend lässt sich sagen, dass die Lösungen für das ähnliche Problem, dass ActiveX keine Scripting.FileSystemObject-Objekte erstellen kann, im Allgemeinen ähnlich sind. Die Hauptsache ist, klare Vorstellungen zu haben: Betrachten Sie zunächst das Problem der Komponentenregistrierung und zweitens das Problem der Komponentenberechtigung ist kein Problem mit der Serverkonfiguration. Wenn ja, dann überprüfen Sie sorgfältig Ihren Programmquellcode!