Concernant le problème similaire selon lequel ActiveX ne peut pas créer d'objets Scripting.FileSystemObject, les solutions sont généralement similaires. L'essentiel est d'avoir l'esprit clair : considérez d'abord le problème d'enregistrement du composant, et deuxièmement le problème d'autorisation du composant s'il n'y a pas de problème avec le composant. configuration du serveur, puis vérifiez-la attentivement.
J'ai rencontré un problème aujourd'hui. Un site Web ASP a signalé une erreur lors de la génération d'une page statique :
Erreur d'erreur d'exécution Microsoft VBScript '800a01ad'
Le composant ActiveX ne peut pas créer d'objet : 'Scripting.FileSystemObject'
En fait, ce problème est relativement courant. La raison de l'erreur est que le serveur ne prend pas en charge le composant FSO. Cette situation est souvent rencontrée dans les systèmes CMS ASP traditionnels tels que Fengxun, Kexun et Dongyi, car ils adoptent tous des mécanismes de génération statique et nécessitent la prise en charge des composants FSO. Avant de commencer, vous devez d'abord utiliser la sonde ASP pour tester le support du serveur pour les composants FSO. Habituellement nous utilisons un serveur Windows 2003.
Ci-dessous, je parlerai de mes idées de solutions spécifiques et j'analyserai chaque raison possible du rapport d'erreurs. J'espère que cela vous sera utile.
1) Le fichier scrrun.dll n’est pas enregistré. Accédez au dossier C:/WINDOWS/system32 et voyez s’il existe un fichier scrrun.dll. Sinon, accédez au dossier i386 dans le répertoire d'installation du système et copiez-le. Ensuite, menu Démarrer->exécutez la commande suivante pour enregistrer le composant FSO :
regsvr32.exe %windir%/system32/scrrun.dll Cela permet au serveur de prendre en charge le composant FSO. Si vous souhaitez désactiver le composant FSO, exécutez la commande suivante :
regsvr32.exe /u %windir%/system32/scrrun.dll est normal et votre problème sera résolu.
2) Si cela ne fonctionne toujours pas, vérifiez si le contrôle ActiveX est désactivé dans le navigateur. Normalement, cela n'arrivera pas, sauf s'il s'agit d'un serveur, le niveau de sécurité sera strictement restreint. Si tel est le cas, réglez simplement le niveau de sécurité du navigateur sur moyen-bas.
3) Votre serveur lui-même ne prend pas en charge les composants FSO.
4) Tenez compte des problèmes d'autorisation. Effectuez les opérations suivantes dans l'ordre :
Menu Démarrer -> Exécuter -> regedit -> OK, recherchez tour à tour HKEY_CLASSES_ROOT/Scripting.FileSystemObject, cliquez avec le bouton droit sur les autorisations, ajoutez les autorisations de l'utilisateur Tout le monde, Compte invité Internet (IUSR...), redémarrez IIS pour résoudre le problème.
5) Pièce jointe : Solution au problème selon lequel le serveur ne prend pas en charge le composant Scripting.Dictionary
Grâce aux étapes ci-dessus, vous pouvez parfaitement résoudre le problème de l’échec de la création d’objets ActiveX. Si le problème persiste et que le composant Scripting.Dictionary n'est pas pris en charge, la solution est similaire. Reportez-vous à la première étape et exécutez la commande regsvr32.exe %windir%/system32/scrrun.dll. Si le problème n'est pas encore résolu, considérez le problème d'autorisation. Vous pouvez vous référer à l'étape 4 pour ajouter des autorisations à cet objet dans le registre. Tirez des conclusions à partir d’un exemple et sachez comment le résoudre si vous rencontrez à nouveau des problèmes similaires !
6) Pièce jointe : solution à l’échec de Server.CreateObject. Lorsque nous exécutons le programme, des erreurs similaires peuvent nous apparaître, comme suit :
Erreur d'objet serveur 'ASP 0177 : 800401f3'
Échec de Server.CreateObject
/include/test.asp, ouvrez test.asp à la ligne 38, vérifiez le code source près de la ligne 38 et voyez s'il y a une erreur dans la méthode d'écriture de création de l'objet. La méthode d'écriture standard doit être :
<% Set fso = Server.CreateObject(Scripting.FileSystemObject) %>
Cette situation est principalement due à la négligence du programmeur. En fait, le composant Scripting.FileSystemObject peut être renommé, ce qui augmentera la sécurité du serveur. Nous pouvons le modifier dans le registre comme suit :
Menu Démarrer->Exécuter->regedit->OK, recherchez tour à tour HKEY_CLASSES_ROOT/Scripting.FileSystemObject, cliquez avec le bouton droit pour renommer, puis exécutez la première étape pour enregistrer le fichier scrrun.dll. Notez que lorsque vous écrivez le programme, vous devez créer l'objet avec ce nouveau nom, sinon une erreur sera signalée. 7) Pièce jointe : IIS est livré avec des composants
Avez-vous découvert que les causes de ces problèmes résident toutes dans les propres composants d'IIS. Voici quelques composants IIS courants à titre de référence :
MSWC.AdRotator
MSWC.BrowserType
MSWC.NextLink
MSWC.Outils
MSWC.Statut
MSWC.Compteurs
SWC.PermissionChecker
WScript.Shell
Microsoft.XMLHTTP
Scripting.FileSystemObject
ADODB.Connection Pour résumer, concernant le problème similaire qu'ActiveX ne peut pas créer d'objets Scripting.FileSystemObject, les solutions sont généralement similaires. L'essentiel est d'avoir les idées claires : considérez d'abord le problème d'enregistrement du composant, et deuxièmement le problème d'autorisation du composant, le cas échéant. il n'y a aucun problème avec la configuration du serveur. Si tel est le cas, vérifiez attentivement le code source de votre programme !