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


http://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


http://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)


http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=5148b887-f323-4adb-9721-61e1c0cfd213


 


 


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=”http://blogs.msdn.com/TestRSClientPrintReportViewer/Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;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


http://www.microsoft.com/downloads/details.aspx?FamilyID=1e53f882-0c16-4847-b331-132274ae8c84&displaylang=en


 


               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


http://www.microsoft.com/downloads/details.aspx?familyid=82833F27-081D-4B72-83EF-2836360A904D&displaylang=en


 


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


http://www.microsoft.com/downloads/details.aspx?FamilyID=bb196d5d-76c2-4a0e-9458-267d22b6aac6&DisplayLang=en


 


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


http://www.microsoft.com/downloads/details.aspx?familyid=5F9E7F78-7439-414B-A9DC-A779B89427DB&displaylang=en


 


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


http://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


http://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 (10)

  1. alberttogar24 says:

    ´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.NET

  2. EsecueleSinFronteras says:

    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 Services

  3. alberttogar24 says:

    TEngo el mismo problema, ya hice varios procedimientos y el error persiste, si me podrias ayudar a solucionarlo con información adicional,

  4. EsecueleSinFronteras says:

    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 Server

  5. andrestabares says:

    Buenas, este temita ya me tiene loco. Tengo una appl hecha en Vs 2008, Sql 2005 e instalada en windows server 2003 r2. Cuando le doy al código fuente de la pagina la version del control ReportViewerWebControl es 9.0.21022, ya actualice como indica el articulo a "Microsoft Report Viewer 2008 SP1 Redistributable" pero me sigue saliendo que la version es 9.0.21022. Tambien instale la actualización de seguridad ya que en la maquina cliente no estaba, reinicie la maquina y todo sigue igual. Borre la siguiente clave de registro "FA91DF8D-53AB-455D-AB20-F2F023E498D3" y continua igual.

    Que otra cosa puedo hacer para solucionar este inconveniente.

    Muchas Gracias….

  6. andrestabares says:

    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….

  7. EsecueleSinFronteras says:

    Despues de actualizar el ReportViewer control, deberás de ejecutar el comando iisreset para que los controles sean actualizados. Prueba esto

  8. EsecueleSinFronteras says:

    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 Esteban

  9. Martha López says:

    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 ayudarme

  10. Lina M says:

    Muchas gracias, me funciono, mas claro no pudo ser el articulo. Mil gracias.