Les objets COM ne parviennent pas à s’imprimer lorsqu’ils sont appelés à partir d’ASP

Cet article vous aide à résoudre le problème lié au fait qu’un objet COM envoie la sortie à une imprimante échoue lorsqu’il est appelé à partir des pages Active Server.

Version d’origine du produit : Pages du serveur actif
Numéro de la base de connaissances d’origine : 184291

Symptômes

Un objet COM qui envoie la sortie à une imprimante échoue lorsqu’il est appelé à partir d’ASP (Active Server Pages), mais fonctionne correctement lorsqu’il est appelé à partir d’une application interactive. Cet objet COM peut être un produit commercial tel qu’une application Microsoft Office ou un objet tiers personnalisé. Un message d’erreur courant est « Erreur className '800a01e2' Erreur d’imprimante ».

Cause

Les API standard que la plupart des objets utilisent pour imprimer dépendent des entrées de Registre situées dans HKEY_CURRENT_USER. Cette ruche de Registre est dynamique. Selon le contexte utilisateur sous lequel le processus s’exécute, différentes informations sont chargées dans cette ruche. Les pages ASP s’exécutent sous IIS, qui s’exécute en tant que compte SYSTEM. Lorsque vous créez un instance d’un objet COM dans votre code ASP, il s’exécute également par défaut en tant que compte SYSTEM. Par défaut, le compte SYSTEM n’a pas d’imprimante configurée dans le Registre.

Résolution

Vous pouvez configurer des imprimantes pour le compte SYSTEM afin de résoudre ce problème. Pour configurer des imprimantes pour le compte SYSTEM, procédez comme suit :

Avertissement

Cette méthode vous oblige à modifier le Registre à l’aide de l’Rédacteur du Registre. L’utilisation du Registre Rédacteur de manière incorrecte peut entraîner des problèmes graves à l’échelle du système qui peuvent vous obliger à réinstaller Windows pour les corriger. Microsoft ne peut pas garantir que les problèmes résultant de l’utilisation de l’Rédacteur du Registre peuvent être résolus. Utilisez cet outil à vos propres risques.

  1. Vérifiez que l’utilisateur auquel vous êtes actuellement connecté sur le serveur dispose des imprimantes souhaitées.

  2. Lancez la Rédacteur du Registre (Regedit.exe).

  3. Sélectionnez la clé suivante :

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices

  4. Dans le menu Registre , sélectionnez Exporter le fichier du Registre.

  5. Dans la zone de texte Nom de fichier, tapez c :\Devices.reg.

  6. Sélectionnez la clé suivante :

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts

  7. Dans le menu Registre , sélectionnez Exporter le fichier du Registre.

  8. Dans la zone de texte Nom de fichier, tapez c :\PrinterPorts.reg.

  9. Sélectionnez la clé suivante :

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows

  10. Dans le menu Registre , sélectionnez Exporter le fichier du Registre.

  11. Dans la zone de texte Nom de fichier, tapez c :\Windows.reg.

  12. Dans le bouton Démarrer , sélectionnez Exécuter. Ouvrez Devices.reg dans le Bloc-notes en tapant bloc-notes Devices.reg dans la boîte de dialogue Exécuter .

  13. Remplacez le texte HKEY_CURRENT_USER par HKEY_USERS\.DEFAULT.

  14. Enregistrez le fichier. Ensuite, importez-le dans le Registre en double-cliquant sur le fichier dans Windows Explorer.

  15. Répétez les étapes 13 à 15 pour PrinterPorts.reg et Windows.reg.

Remarque

Ces étapes fonctionnent uniquement pour les imprimantes locales.

Pour permettre à IIS d’énumérer les imprimantes réseau à l’aide du compte SYSTEM, procédez comme suit.

Remarque

Si le processus s’exécute sous le compte de service réseau, des autorisations explicites sur le registre nouvellement créé sont requises.

  1. Vérifiez que vous êtes actuellement connecté au serveur en tant qu’utilisateur disposant des imprimantes réseau souhaitées.

  2. Démarrez l’Éditeur du Registre.

  3. Sélectionnez la clé suivante :

    HKEY_CURRENT_USER\Printers\Connections

  4. Dans le menu Registre , sélectionnez Exporter le fichier du Registre.

  5. Dans la zone Nom de fichier , tapez c :\printconns.reg.

  6. Pour ouvrir le fichier printconns.reg dans le Bloc-notes, sélectionnez Démarrer, Exécuter, tapez Bloc-notes printconns.reg dans la zone Ouvrir , puis sélectionnez OK.

  7. Remplacez le texte HKEY_CURRENT_USER par le texte HKEY_USERS\.DEFAULT.

  8. Enregistrez le fichier.

  9. Pour importer le fichier dans le Registre, double-cliquez sur le fichier dans Windows Explorer.

  10. Redémarrez le service Spouleur d’impression.