I have a chicken-egg-problem when upgrading from SSRS2014 to SSRS2016.
I cannot move to the new reportviewer because I still have users on
IE. The new report viewer cannot print nicely on Internet Explorer:
if you click print, you can download a pdf and THEN print it.
Due to the large amount of reports we print, this is no feasable option.
I cannot migrate away from Internet Explorer because of the old report
viewer: The ActiveX print control only works in Internet Explorer.
So I want to migrate to the new report server, yet show the reports through the old viewer for IE-users. So my test web server has both the new and the old reporting component. If the client uses Internet Explorer, I serve the old one. Otherwise, they get the new one.
In my test environment, reports from SSRS 2016 are rendered correctly by the old reporting control. (Microsoft.ReportViewer.WebForms version 11.0.0.0) However, when I try to print, the client displays a dialog box "Unable to load client print control"
On my server, an exception is thrown:
The report server could not find the internal resource '2015.130.1601.05rsclientprint.cab'. (rsInternalResourceNotFoundError)
[ReportServerException: The report server could not find the internal resource '2015.130.1601.05rsclientprint.cab'. (rsInternalResourceNotFoundError)]
Microsoft.Reporting.WebForms.SoapReportExecutionService.WritePrintCab(ClientArchitecture arch, Stream stream) +797
Microsoft.Reporting.WebForms.ServerReport.WritePrintCab(ClientArchitecture arch, Stream stream) +75
Microsoft.Reporting.WebForms.HttpHandler.ProcessRequest(HttpContext context) +304
I know there is a new reporting control, making the ActiveX print control obsolete. However, I'd like to prevent a big bang implementation. Printing with the old control only works on Internet Explorer, so all users use IE. Printing with the new control DOESN'T work with IE.
(If 100+ users print 50+ reports a day, having to download a pdf and print that is a BIG difference.)
https://learn.microsoft.com/en-us/sql/reporting-services/report-server/enable-and-disable-client-side-printing-for-reporting-services says:
"Previous versions of Reporting Services used an ActiveX control that required downloading to the client computer from the report server. If you upgrade your report server to SQL Server 2016, the print control is not removed from the report server or client computers."
This suggests that ActiveX printing is also possible with the new server, probably through the old Report viewer control. If that works, I can put the new control next to the old one, and gradually migrate my users to a modern browser.
Did anybody get this to work without restarting and installing SQL Server 2014, and upgrading?
To migrate SSRS Reports from 2014 to 2016. Simply follow below steps:
Backup and restore original databases
Backup encryption key
Install Ssrs 2016 on new server with managed service account.
Restore databases and remove server key entry from key table in the report database.
Configure Ssrs 2016 to look at new restored databases on same new instance.
Restore keys from backup.
Or visit this link :https://www.mssqltips.com/sqlservertip/2692/migrating-sql-reporting-services-to-a-new-server-by-moving-the-reporting-services-databases/
Related
We have an ASP.NET Web application installed (.NET FW v4.x based) and working on Windows Server 2012. The Crystal Reports v13.0.20 runtime is installed and the web application uses this to preview reports on screen and to print reports to networked printers. We use PrintToPrinter in CrystalDecisions.CrystalReports.Engine.ReportDocument. Code included below.
Printing was working a few days ago, i.e. the printers were printing reports correctly.
Yesterday, Windows Update installed updates related to https://support.microsoft.com/en-us/topic/august-10-2021-kb5005043-os-build-14393-4583-709d481e-b02a-4eb9-80d9-75c4b8170240 which addresses the PrintNighmare vulnerability. After this update, printing stopped working.
Today we uninstalled this update https://support.microsoft.com/en-us/topic/august-10-2021-kb5005043-os-build-14393-4583-709d481e-b02a-4eb9-80d9-75c4b8170240 from the server and the printers are able to print reports again.
Has anyone seen this or found a way to have the critical update in-place but allow reports to print from the above scenario?
Code:
Using cr As New CrystalDecisions.CrystalReports.Engine.ReportDocument
cr.FileName = mReportName
cr.Load(mReportName)
cr.PrintOptions.PrinterName = mPrinterName
cr.PrintToPrinter(mCopies, True, 1, 1000)
End Using
Use "local printers". You can use "local printers" even if you want to print to a shared printer (\servername\printername). The driver is then locally installed, and not fetched/updated from the remote server.
Open “Devices and Printers”
Click “Add a printer” (on the top)
Select “Add a local printer”
Select “Create a new port”, select “Local Port” (port type)
Port Name: enter the network path to the printer in format \printservername\queuename
Example2: \server1.mydsomain.com\printer1
Select the printer driver (driver installation)
You might need to run your IIS app pool as a user (service account) with right to print to the remote queue.
--
Or bypass the Microsoft change with:
Add a registry value to get back the "old behavior" before the KB5005043
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint]
-> "RestrictDriverInstallationToAdministrators"=dword:00000000
First off, the error doesn't occur when running locally, only when I have it published to the web server (Server 2008 R2). The error message (first portion) that gets returned is:
MICROSOFT.REPORTING.WEBFORMS.LOCALPROCESSINGEXCEPTION: AN ERROR OCCURRED DURING LOCAL REPORT PROCESSING. ---> SYSTEM.NULLREFERENCEEXCEPTION: OBJECT REFERENCE NOT SET TO AN INSTANCE OF AN OBJECT.
A
MICROSOFT.REPORTINGSERVICES.RENDERING.HPBPROCESSING.TABLIX.UPDATETOPITEMKT(PAGEITEM TOPITEM, ROWINFO ROWINFO, PAGEDETAILCELL CURRCELL)
The code snippet that is rendering the report is in VB.Net...
Dim report As LocalReport = New LocalReport()
report.DataSources.Clear()
report.ReportPath = "App_GlobalResources\MyReport.rdlc"
report.DataSources.Add(New ReportDataSource("MyDataSource", MyDataTable))
report.Refresh()
Dim byteReport As Byte() = New Byte() {}
'The next line is where it fails with the exception above.
byteReport = report.Render("pdf") 'Get bytes to use with memory stream
We do have other reports that work fine using the same code, but this report uses the Row Groups in the table to group data together with a heading...the ones that work do not use the row groups.
Again, this only happens when posted to the web server. I have found a couple links that seem to be similar (one below), but wanted to see if anyone had experienced this.
ReportViewer export to PDF Null reference
I was able to find a fix that worked for me and resolved this issue, so hopefully it will help others that come across this question.
We were developing in VS2010 when we created our first rdlc using MS ReportViewer 2010. We have since upgraded to VS2013 and .Net 4.5 and we never touched our existing rdlc because everything continued to work. When we created the new rdlc's, we targeted MS ReportViewer 2010 again, however the new reports that were using the table control and row groups to group data within the table would fail when they were deployed to a web server.
What I did was I installed the MS ReportViewer 2012 Runtime (if needed) so that I could reference the newer dll. I then installed it on the web server as well. Note: You might be prompted to install Microsoft® System CLR Types for Microsoft® SQL Server® 2012. You can find the x86/x64 downloads near the bottom of the Install Instructions.
Once I re-published the updated website to the updated web server, everything worked without errors. I did notice that my formatting was a little different using 2012 than it was in 2010, but the changes required to resolve those differences were minimal.
I'm stuck on a quirky issue with OpenERP Report Designer where after clicking on 'Send Report to Server' in OpenOffice for Windows, the Sent To Server window stays open and nothing happens This occurs wether I choose to 'Open a new report' or 'Modify Existing Report'. After any editing, I can't get a report to save back to the server.
If I don't type anything on an existing report page, it will process, and I see a verification in the log that there was a login. I've tried reinstalling the module and the zip file to no avail.
Please help me to use this simple yet powerful tool.
I'm working with LibreOffice Writer,
Open Libreoffice Writer
OpenERP Report Designer/Server Parameters
Add server, port and Protocol Connection = "XML-RPC" after do this it will ask for Server Connection Parameter, Choose your db,login and password
OpenERP Report Designer/Open a New Report and Start draw your report.
Hope this will help you
I have a seperate SQL(2008 R2) box and web server(IIS 7).
The IIS server is visible to the public the SQL box is not (as it should be)
On the web server there is a asp.net page with a report viewer control.
The reportview control picks up a report from Reporting Services on the SQL box and displays the report in the web page. But when I try to print I get the "Unable to load client print control" error message.
I've looked over all the many posts, and there are many, and have tried some of the "fixes" like updating with all the service packs, etc..
I can not have the end users adjust their security settings (this would number about 100,000 users)
There must be a definitive answer to this problem. I can not believe that MS would leave this so unusable.
Any suggestions or ideas?
TIA
John
New information **
I am able to log onto the web server and using IE on the Web server bring up the reportmanager on the SQL server and print successfully. I actually was able to see the print client download and I got the expected security prompts.
I tried bringing up the website in question the same way, i.e. using IE on the web server itself, the reports display but when I go to print I get the "Unable to load" error. This occurs on a machine that seconds before was able to download the activex and successfully print.
First thing I would say is you normally have to be a local admin on the machine to actually install the client print control, if they are'nt then i think they will get this error.
I did see an issue a while ago where the ActiveX killbits update broke the client print control, i have a feeling this was on 2005 but it might be worth checking?
Okay, time for a stupid question.
When viewing the browser source code of a ssrs report there is a script tag that references Reserved.ReportViewerControl.axd. There is a query string parameter of the version. What installed component on the web server determines that version #? The reason I ask is I am trying to debug a situation where an installation of our web app (asp.net 3.5) cannot print a report ("Unable to load client control..."), but on our internal machines, we can. I do not have direct access to the web server/db server. I can confirm that I can print directly from the Report Manager. I am trying to piece together any differences b/t the two environments, and one thing I am noticing is the different version query string value.
Our internal says -
Reserved.ReportViewerWebControl.axd?OpType=Resource&Version=9.0.30729.4402&Name=Microsoft.Reporting.WebForms.Scripts.ReportViewer.js"
Client says -
Reserved.ReportViewerWebControl.axd?OpType=Resource&Version=9.0.30729.1&Name=Microsoft.Reporting.WebForms.Scripts.ReportViewer.js"
I am fairly sure it is the Microsoft Report Viewer Redistributable, but I want to make absolute sure. Anyone out there know?
This depends on whether you're using the .NET ReportViewer control on a custom ASP.NET page or whether you're simply using Reporting Services' out-of-the-box viewer. If it is the former, then most likely it's from the Report Viewer Redistributable. If it is the latter, it's from the SQL Server installation.
See if this SO post helps you with your print issue:
ReportViewer Client Print Control "Unable to load client print control"?