Error: "Unable to load client print control" en Reporting Services
¿Te has encontrado con el siguiente error últimamente al intentar imprimir un informe en Reporting Services?
No se puede cargar el controlador de impresión
(En Ingles: Unable to load client print control)
Es muy seguro que este error haya sido producido por la instalación del siguiente aviso de seguridad: 956391, que actualiza killbits, una versión antigua del control RSClientPrint por una vulnerabilidad encontrada.
Aviso de seguridad de Microsoft: Actualización de seguridad acumulativa para ActiveX
https://support.microsoft.com/?id=956391
Para solucionarlo, podéis instalar el último Cumulative Update 10 de SQL Server, que lo podéis conseguir del siguiente enlace:
Cumulative update package 10 for SQL Server 2005 Service Pack 2
https://support.microsoft.com/kb/956854/en-us
Si utilizaseis el Report Viewer desde una aplicación web, CRM o SharePoint, os aconsejaría los siguientes pasos:
1. Primero verificar la versión del Report Server. Debería de ser 9.00.3073 or 9.00.3282.
Si no, actualizar el Report Server:
Security Update for SQL Server 2005 Service Pack 2 (KB954607)
2. Ahora comprobar la versión del control ReportViewer (en caso de utilizarlo)
Para ello, abrir el informe en la máquina cliente, hacer clic derecho en el informe y seleccionar “View Source”.
Encontrar la siguiente línea:
<script src="https://blogs.msdn.com/TestRSClientPrintReportViewer/Reserved.ReportViewerWebControl.axd?OpType=Resource&Version=X.Y.ZZZZ
3. Ahora, Si el control es de tipo “Reserved.ReportViewerWebPart.axd” entonces tiene que ver con SharePoint.
Hay un fix para esto en el siguiente enlace:
Microsoft SQL Server 2005 Reporting Services Add-in for Microsoft SharePoint Technologies
Si el control es de tipo “Reserved.ReportViewerWebControl.axd” vamos bien.
Tenemos 2 versiones mayores diferentes: 8.00.50727 y 9.00.XXXX.
Si ves la versión 8.00.50727 esto significa que está viendo informes desde CRM o utilizando el control ReportViewer desde una aplicación web.
Si ves la versión 8.00.50727 y la versión es anterior a 8.00.50727.1843 entonces se debería de instalar el siguiente fix en el servidor ReportServer o en el servidor de CRM:
Microsoft Report Viewer Redistributable 2005 Service Pack 1
Si ves la versión es 9.00.XXXX o 9.0.XXXX esto significa que está viendo informes desde Report Manager, Report Server o una aplicación web desde un Visual Studio VS 2008.
En ese caso se tundra que instalar el siguiente fix en la máquina del report server:
Microsoft Report Viewer 2008 SP1 Redistributable
Esto actualizará a la versión 9.0.30729.1 del control Report Viewer.
Para Reporting Services 2000
Hara falta instalar la siguiente actualización de seguridad en el servidor de Reporting Services
Security Update for SQL Server Reporting Services 2000 Service Pack 2
Y la siguiente version del Report Viewer redistributable en la máquina donde está la aplicación web (ó la máquina de CRM):
Microsoft Report Viewer Redistributable 2005 Service Pack 1
https://www.microsoft.com/downloads/details.aspx?familyid=82833F27-081D-4B72-83EF-2836360A904D
La siguiente actualización de seguridad debería de estar instalada en todas las máquinas cliente:
Microsoft Security Advisory: Update Rollup for ActiveX Kill Bits
https://support.microsoft.com/kb/956391
He seguido los pasos arriba indicados y todavía me da el error al imprimir
Si aun así os seguís encontrando el error al imprimir el informe desde vuestra aplicación. Pudiera ser que la versión del control rsClientPrint en las máquinas cliente no fuera igual a la versión del servidor.
Una buena prueba sería que borraseis la el control que tenéis en la máquina cliente y permitáis que se descargue de nuevo desde el servidor. Esto se hace automáticamente al imprimir el informe, la primera vez que el control se va a utilizar o cuando la versión en el servidor cambia. Nótese que los usuarios necesitan tener permisos para descargar controles Active X.
Los pasos a seguir en la máquina cliente serían:
1. Desregistrar RSClientPrint.dll en c:\windows\system32 folder
2. Borrar todos los ficheros RSClientPrint.dll y RSClientPrint*.rll del directorio
c:\windows\system32 .
3. Ir a Windows\Downloaded Program Files y borrar la clase RSClientPrint 2005
4. Configurar la intranet de IE para que pida credenciales para descargar controles ActiveX
5. Ejecutar el informe y hacer clic en el botón de impresión.
6. Instalar el plugging ActiveX cuando lo pida
7. Confirmar que la clase RSClient 2005 se ha descargado en Windows\Downloaded Program Files
8. Si os muestra un mensaje que empieze por “An error occurred during printing (0x80070006)”, habrá que reiniciar la maquina y repetir los pasos
Una manera de comprobar la versión del control rsClientPrint en la máquina cliente sería (tiene que ser la misma versión que la del servidor)
· Abrir la ventana de comandos
· navegar a c:\windows\downloaded program files
· Copiar rsclientprint.dll a un directorio temporal, por ejemplo c:\temp
· Abrir el Explorador de Windows
· Navegar al directorio c:\temp
· En el menu contestual comprobar la versión
· Borrar RSClientPrint.dll del directorio temp
Maria Esteban
Ingeniero de Soporte de Reporting Services
Comments
Anonymous
April 22, 2009
´he segido los pasos que describes y no logro solucionar el problema, tengo instalado SQL Server Reporting services 9.0.3042 actualice a SP2 y el report viewer con el enlace pero sigue el problema. Podrias ayudarme, es urgente, aa por cierto lo utilizo desde una aplicacion en ASP.NETAnonymous
April 22, 2009
Asegúrate de que, en todas la máquinas (clientes y servidores) tengáis instalado el parche 956391. Microsoft Security Advisory: Update Rollup for ActiveX Kill Bits http://support.microsoft.com/kb/956391 Este parche de seguridad se instala automáticamente desde Windows Update. Maria Esteban EMEA GTSC Development Support Engineer Microsoft Product Support ServicesAnonymous
April 25, 2009
TEngo el mismo problema, ya hice varios procedimientos y el error persiste, si me podrias ayudar a solucionarlo con información adicional,Anonymous
April 27, 2009
Hola, Si en todas la máquinas (clientes y servidores) está instalado el parche http://support.microsoft.com/kb/956391 que comenta María en su respuesta necesitaríamos que abras un caso con nosotros para ver el entorno y confirmar de donde viene el problema. Un saludo, Marcos Celada Ingeniero de soporte de SQL ServerAnonymous
July 21, 2009
The comment has been removedAnonymous
July 21, 2009
Adicional al posta anterior quisiera agregar que cuando yo navego directamente al informe por el explorer este me deja utilizar el control de imprimir, pero si lo hago desde la appl no. Muchas Gracias....Anonymous
July 28, 2009
Despues de actualizar el ReportViewer control, deberás de ejecutar el comando iisreset para que los controles sean actualizados. Prueba estoAnonymous
July 28, 2009
cuando yo navego directamente al informe por el explorer este me deja utilizar el control de imprimir... Intenta los pasos en el punto 3 del siguiente articulo para actualizar las maquinas cliente http://support.microsoft.com/kb/967511/es Maria EstebanAnonymous
January 25, 2010
Hola, buenas noches, yo al igual que todos he realizado todo lo que mencionan y sigue ocurriendo el error. Quiero comentar que mi aplicación esta hecha en VS 2005, tengo un servidor de aplicaciones, el servidor de Reporting Services con 2005 y Sp 3, y servidor de base de datos con SQL Server 2005, todas las actualizacines que mencionan las he realizo al servidor de reportes y en mi maquina que utilizó como cliente he realizado lo correspondiente y el error persiste. Ojala puedan ayudarmeAnonymous
February 12, 2010
Muchas gracias, me funciono, mas claro no pudo ser el articulo. Mil gracias.