Los objetos COM no se pueden imprimir cuando se llama desde ASP
En este artículo se ayuda a resolver el problema que un objeto COM envía la salida a una impresora cuando se llama desde Active Server Pages.
Versión original del producto: Páginas de Active Server
Número de KB original: 184291
Síntomas
Se produce un error en un objeto COM que envía la salida a una impresora cuando se llama desde Active Server Pages (ASP), pero funciona correctamente cuando se llama desde una aplicación interactiva. Este objeto COM podría ser un producto comercial como una aplicación de Microsoft Office o un objeto personalizado de terceros. Un mensaje de error común es "Error de 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. En función del 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 que la cuenta SYSTEM resuelva este problema. Para configurar impresoras para la cuenta SYSTEM, siga estos pasos:
Advertencia
Este método requiere que modifique el Registro mediante la Editor del Registro. El uso incorrecto de Editor del Registro puede causar problemas graves en todo el sistema que pueden requerir que vuelva a instalar Windows para corregirlos. Microsoft no puede garantizar que se puedan resolver los problemas derivados del uso de Editor del Registro. Use esta herramienta a su propio riesgo.
Asegúrese de que el usuario en el que ha iniciado sesión actualmente en el servidor tenga instaladas las impresoras deseadas.
Inicie la Editor del Registro (Regedit.exe).
Seleccione la clave siguiente:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices
En el menú Registro , seleccione Exportar archivo del Registro.
En el cuadro de texto Nombre de archivo, escriba c:\Devices.reg.
Seleccione la clave siguiente:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts
En el menú Registro , seleccione Exportar archivo del Registro.
En el cuadro de texto Nombre de archivo, escriba c:\PrinterPorts.reg.
Seleccione la clave siguiente:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows
En 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 el Bloc de notas; para ello, escriba Bloc de notas Devices.reg en el cuadro de diálogo Ejecutar .
Reemplace el texto
HKEY_CURRENT_USER
porHKEY_USERS\.DEFAULT
.Guarde el archivo. A continuación, impórtelo en el Registro haciendo doble clic en el archivo en el Explorador de Windows.
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 deseadas.
Inicie el Editor del Registro.
Seleccione la clave siguiente:
HKEY_CURRENT_USER\Printers\Connections
En 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 el Bloc de notas, seleccione Inicio, Ejecutar, escriba Bloc de notas printconns.reg en el cuadro Abrir y, a continuación, seleccione Aceptar.
Reemplace el texto
HKEY_CURRENT_USER
por el textoHKEY_USERS\.DEFAULT
.Guarde el archivo.
Para importar el archivo en el Registro, haga doble clic en el archivo en el Explorador de Windows.
Reinicie el servicio Print Spooler.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de