从 SSRS2014 升级到 SSRS2016 时,我遇到了鸡蛋问题。
- 我无法移动到新的报表查看器,因为我在 IE 上仍有用户。新的报告查看器无法在 Internet Explorer 上很好地打印:如果单击打印,您可以下载 pdf 然后打印它。由于我们打印大量报告,这不是可行的选择。
- 由于旧的报表查看器,我无法从 Internet Explorer 迁移:ActiveX 打印控件只能在 Internet Explorer 中使用。
所以我想迁移到新的报表服务器,但通过旧查看器为 IE 用户显示报表。所以我的测试网络服务器既有新的也有旧的报告组件。如果客户端使用 Internet Explorer,我会使用旧的。否则,他们会得到新的。
在我的测试环境中,来自 SSRS 2016 的报告由旧报告控件正确呈现。(Microsoft.ReportViewer.WebForms 版本 11.0.0.0)但是,当我尝试打印时,客户端显示一个对话框“无法加载客户端打印控件”
在我的服务器上,抛出异常:
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
我知道有一个新的报告控件,使 ActiveX 打印控件过时。但是,我想阻止大爆炸的实施。使用旧控件打印仅适用于 Internet Explorer,因此所有用户都使用 IE。使用新控件进行打印不适用于 IE。
(如果 100 多个用户每天打印 50 多个报告,则必须下载 pdf 并打印,这是一个很大的不同。)
https://docs.microsoft.com/en-us/sql/reporting-services/report-server/enable-and-disable-client-side-printing-for-reporting-services说:“以前版本的报告服务使用需要从报表服务器下载到客户端计算机的 ActiveX 控件。如果将报表服务器升级到 SQL Server 2016,则不会从报表服务器或客户端计算机中删除打印控件。 "
这表明新服务器也可以进行 ActiveX 打印,可能是通过旧的报表查看器控件。如果可行,我可以将新控件放在旧控件旁边,并逐渐将我的用户迁移到现代浏览器。
有没有人在不重新启动和安装 SQL Server 2014 和升级的情况下让它工作?