Los objetos COM no se imprimen cuando se llama desde ASP
Este artículo le ayuda a resolver el problema de que un objeto COM envía resultados a una impresora cuando se llama desde páginas Active Server.
Versión del producto original: páginas Active Server
Número KB original: 184291
Síntomas
Se produce un error en un objeto COM que envía salida a una impresora cuando se llama desde páginas Active Server (ASP), pero funciona correctamente cuando se llama desde una aplicación interactiva. Este objeto COM puede ser un producto comercial, como una aplicación Microsoft Office o un objeto de terceros personalizado. Un mensaje de error común es "Error ClassName '800a01e2' Error de impresora".
Causa
Las API estándar que la mayoría de los objetos usan para imprimir dependen de las entradas del Registro ubicadas en HKEY_CURRENT_USER. Este subárbol del Registro es dinámico. Según el contexto de usuario en el que se ejecute el proceso, se cargará información diferente en este subárbol. Las páginas ASP se ejecutan en IIS, que se ejecuta como la cuenta SYSTEM. Al crear una instancia de un objeto COM en el código ASP, de forma predeterminada, también se ejecutará como la cuenta SYSTEM. De forma predeterminada, la cuenta SYSTEM no tiene ninguna impresora configurada en el Registro.
Solución
Puede configurar impresoras para la cuenta SYSTEM para resolver este problema. Para configurar impresoras para la cuenta SYSTEM, siga estos pasos:
Advertencia
Este método requiere modificar el Registro mediante el Editor del Registro. El uso incorrecto del Editor del Registro puede provocar problemas graves en todo el sistema que pueden requerir la reinstalación Windows corregirlos. Microsoft no puede garantizar que se puedan solucionar los problemas derivados del uso del Editor del Registro. Use esta herramienta bajo su propio riesgo.
Asegúrese de que el usuario con el que ha iniciado sesión en el servidor tenga instaladas las impresoras que desea.
Inicie el Editor del Registro (Regedit.exe).
Seleccione la siguiente clave:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\DevicesEn el menú Registro, seleccione Exportar archivo del Registro.
En el cuadro de texto Nombre de archivo, escriba c:\Devices.reg.
Seleccione la siguiente clave:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPortsEn el menú Registro, seleccione Exportar archivo del Registro.
En el cuadro de texto Nombre de archivo, escriba c:\PrinterPorts.reg.
Seleccione la siguiente clave:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\WindowsEn el menú Registro, seleccione Exportar archivo del Registro.
En el cuadro de texto Nombre de archivo, escriba c:\Windows.reg.
En el botón Inicio, seleccione Ejecutar. Abra Devices.reg en Bloc de notas escribiendo Bloc de notas Devices.reg en el cuadro de diálogo Ejecutar.
Reemplace el texto
HKEY_CURRENT_USERporHKEY_USERS\.DEFAULT.Guarde el archivo. A continuación, impórtelo en el Registro haciendo doble clic en el archivo en Windows Explorer.
Repita los pasos del 13 al 15 para PrinterPorts.reg y Windows.reg.
Nota
Estos pasos solo funcionan para impresoras locales.
Para permitir que IIS enumere las impresoras de red mediante la cuenta SYSTEM, siga estos pasos.
Nota
Si el proceso se ejecuta en la cuenta de servicio de red, se requieren permisos explícitos para el registro recién creado.
Asegúrese de que ha iniciado sesión actualmente en el servidor como un usuario que tiene instaladas las impresoras de red que desea.
Inicie el Editor del Registro.
Seleccione la siguiente clave:
HKEY_CURRENT_USER\Printers\ConnectionsEn el menú Registro, seleccione Exportar archivo del Registro.
En el cuadro Nombre de archivo, escriba c:\printconns.reg.
Para abrir el archivo printconns.reg en Bloc de notas, seleccione Inicio , seleccione Ejecutar , escriba Bloc de notas printconns.reg en el cuadro Abrir y, a continuación, seleccione Aceptar.
Reemplace el texto
HKEY_CURRENT_USERpor el textoHKEY_USERS\.DEFAULT.Guarde el archivo.
Para importar el archivo en el Registro, haga doble clic en el archivo en Windows Explorer.
Reinicie el servicio Print Spooler.