低版本出现报表无法打印的问题(客户端无法加载打印控件)
SP2地址:
SP3地址:
Microsoft Report Viewer Redistributable 2008
Problem:
Unable to load client print control.
Cause:
This issue is seen when KB 956391 has been installed on the client.
Microsoft Security Advisory: Cumulative security update for ActiveX
http://support.microsoft.com/?id=956391
This update killbits an older version of the RSClientPrint, due a vulnerability on it.
But for this update to work the report server must have been patched as well and perhaps also the ReportViewer control has to be updated.
You should leave KB956391 installed on the client machines and then check the below.
Resolution:
First check the report server version.
It must be 9.00.3073 or 9.00.3282.
If not, update the report server:
Security Update for SQL Server 2005 Service Pack 2 (KB954607)
Now check the version of the ReportViewer control.
You do this by having the customer open a report for viewing on a client machine.
Then have them right click on the report and select “View Source”.
Locate the line that looks like this:
<script src="/TestRSClientPrintReportViewer/Reserved.ReportViewerWebControl.axd?OpType=Resource&Version=X.Y.ZZZZ
Now, if the control type is “Reserved.ReportViewerWebPart.axd” then this is an issue with SharePoint.
The “Microsoft SQL Server 2005 Reporting Services Add-in for Microsoft SharePoint Technologies” has been updated to work with the new rsclientprint.dll.
Download center link:
If the control type is “Reserved.ReportViewerWebControl.axd” we should check the following:
We have 2 different major versions here: 8.00.50727 and 9.00.XXXX.
If you see version 8.00.50727 this means you are browsing reports from within CRM or using the ReportViewer control in a custom 2005 web application.
If you see version 8.00.50727 and the version is earlier than 8.00.50727.1843 then you should install the below on the ReportServer or on the CRM server:
Microsoft Report Viewer Redistributable 2005 Service Pack 1
If you see version 9.00.XXXX or 9.0.XXXX then you are browsing through Report Manager, Report Server or perhaps a customer web application built with VS 2008.
Then you should install the below on the report server:
Microsoft Report Viewer 2008 SP1 Redistributable
This will bring you up to version 9.0.30729.1 for the ReportViewer control.
After having updated the ReportViewer control you must issue an iisreset command so that the updated controls will take effect.
MORE
Due to the great confusion I perceive about this error and its possible causes and solutions, I decided to remove my 3 old posts that talked about this error and create a single and more complete posts that I hope helps you resolve all the possible causes of this error when trying to print reports in Reporting Services.
“Unable to load client print control”
POSSIBLE CAUSES AND PROPOSED SOLUTIONS:
There could be 2 possible causes for this issue, very differnt from each other:
1. This error could be caused by a known update to the RSClientPrint control (MS09-062): http://support.microsoft.com/kb/971023
There are some fixes already built for this (1. To fix direct accesses to Report Manager 2. To fix applications that access Report Manager like CRM in your case). See bellow:
1. To fix accesses to Report Manager you should install the following in the Report Server machine:
Service Pack 3 de Microsoft SQL Server 2005
and
Cumulative update package 8 for SQL Server 2005 Service Pack 3
http://support.microsoft.com/kb/978915
2. To fix accesses to the Reporting Services from an application (like CRM, SharePoint or a web application) you would need to install the fixes bellow. They will be different depending on the version of the Report Viewer control:
To check the version of the ReportViewer control.
1. Open a report for viewing on a client machine
2. Then right click on the report and select “View Source”.
Locate the line that looks like this:
<script src="http://blogs.msdn.com/TestRSClientPrintReportViewer/Reserved.ReportViewerWebControl.axd?OpType=Resource&Version=X.Y.ZZZZ
a) If the control type is “Reserved.ReportViewerWebPart.axd” then this is an issue with SharePoint.
The “Microsoft SQL Server 2005 Reporting Services Add-in for Microsoft SharePoint Technologies” has been updated to work with the new rsclientprint.dll.
Download center link:
http://www.microsoft.com/downloads/details.aspx?FamilyID=1e53f882-0c16-4847-b331-132274ae8c84&displaylang=en
b) If the control type is “Reserved.ReportViewerWebControl.axd” we should check the following:
We have 2 different major versions here: 8.00.50727 and 9.00.XXXX.
If you see version 8.00.50727 this means you are browsing reports from within CRM or using the ReportViewer control in a custom 2005 web application.
If you see version 8.00.50727 and the version is earlier than 8.00.50727.1843 then you should install Report Viewer Redistributable 2005 Service Pack 1 on the ReportServer or on the CRM server or machine where the web application is running:
Microsoft Report Viewer Redistributable 2005 SP1 (Full Installation)
and
Report Viewer Redistributable 2005 Service Pack 1 GDIPLUS.DLL Security Update
c) If you see version 9.00.XXXX or 9.0.XXXX then you are browsing through Report Manager, Report Server or perhaps a custom web application built with VS 2008.
Then you should install the below on the report server and in the machine where the web application is running:
Microsoft Report Viewer 2008 SP1 Redistributable
http://www.microsoft.com/downloads/details.aspx?FamilyID=bb196d5d-76c2-4a0e-9458-267d22b6aac6&DisplayLang=en
And
Report Viewer Redistributable 2008 Service Pack 1 GDIPLUS.DLL Security Update
After having updated the ReportViewer control you must issue an iisreset command so that the updated controls will take effect.
2. Or it could be a permissions issue:
When trying to print reports from Reporting Services, the RSClientPrinty control needs to be downloaded and installed to the client machines. This is done automatically the first time a user tries to print a report and the users need to be administrators or Power Users in order to be able to download the control though the web.
Users that are not administrators nor Power Users don’t have permissions to deploy of the RsClientPrint control to IE from the server (not allowed installing ActiveX components)
This happens the first time you run a report or after installing some cumulative updates or service packs that modifies this control and needs to be redeployed. Each time the client clicks on the print button; there is a round trip to the server to check if the client has the latest version.
The following links explains that you need administrator permissions in order to download the print control to download it from the server:
http://msdn.microsoft.com/en-us/library/ms159190(SQL.90).aspx
2 POSSIBLE ALTERNATIVES:
Deploy the control manually:
If the users weren’t administrators or power users, the issue could be resolved by deploying the files manually:
1. Go to C:\Program Files\Microsoft SQL Server\MSSQL.x\Reporting Services\ReportServer\bin on the report server and copy the rsclientprint.cab file
2. Extract the files from the rsclientprint.cab file.
3. Copy all the files to the client computer to Windows\Downloaded Program Files (you might need to do it using the command windows)
c:\print\RSClientPrint.dll
c:\print\rsclientprint.inf
c:\print\RsClientPrint_1028.rl
c:\print\RsClientPrint_1031.rl
c:\print\RsClientPrint_1033.rl
c:\print\RsClientPrint_1036.rl
c:\print\RsClientPrint_1040.rl
c:\print\RsClientPrint_1041.rl
c:\print\RsClientPrint_1042.rl
c:\print\RsClientPrint_2052.rl
c:\print\RsClientPrint_3082.rl
4. Register RSClientPrint.dll by opening a command line (Start->Run) regsvr32 [path]RSClientPrint.dll
Or creating a script to install the control using “Run As”
“Run As” is a tool that allows running programs as a different user than the currently logged-on user. It is described in the article:
How to enable and use the "Run As" command when running programs in Windows
http://support.microsoft.com/?id=294676
Steps to create the script would be:
1. On a Domain Controller, create a share with the appropriate rights for a "simple user"
2. On this share create a file called runas.vbs with the following code:
'
'RunAs Helper
'Syntax: runas.vbs <username> <command>
'
set args=wscript.arguments
username = args(0)
' Enter the password in the variable pass
pass = "administrator password"
'Get the command arguments
for i=1 to args.count - 1
command = command & args.item(i) & " "
Next
set shell=wscript.createobject("Wscript.shell")
'Run runas.exe
shell.run "runas.exe /user:" & username & " """ & command & """",2,FALSE
'Wait for runas.exe to load, this time could be shorter, but is set to 1000
'to be safe
wscript.sleep(1000)
'Send the password and hit enter
shell.sendkeys pass & "{ENTER}"
wscript.sleep(1000)
3. Extract the dll and inf files from your ActiveX on the share.
4. Download the Windows Script Encoder, available on
and encrypt the original vbs file: original_vbs_file.vbs vbs_encrypted_file.vbe
The script encoder is a command-line tool that allows a scriptwriter to protect the contents of a script from unauthorized copies or modifications while ( at the same time ) allowing the script to run.
5- Create a logonscript with the following instructions:
net use z: \\server\share <file://\\server\share> 'Map the share to a local drive.
The files need to be local so as to be installed..
z:\vbs_encrypted_file.vbe domain\admin rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 z:\rapport.inf
z:\vbs_encrypted_file.vbe domain\admin rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 z:\vbs.inf
net use z: /d 'Delete the mapping
I hope this helps,
Maria Esteban
Reporting Services Support Engineer