优雅地从SSRS2014 / IE迁移到SSRS2016 / Edge

时间:2017-05-29 15:26:53

标签: asp.net reporting-services ssrs-2016 aspx-user-control

从SSRS2014升级到SSRS2016时,我遇到了鸡蛋问题。

  • 我无法移动到新的reportviewer,因为我仍然有用户 IE浏览器。新的报表查看器无法在Internet Explorer上很好地打印: 如果你点击打印,你可以下载PDF格式然后打印它。 由于我们打印了大量报告,因此这不是可行的选择。
  • 由于旧报告,我无法从Internet Explorer迁移 viewer:ActiveX打印控件仅适用于Internet Explorer。

所以我想迁移到新的报表服务器,然后通过旧的查看器为IE用户显示报表。所以我的测试Web服务器同时具有新的和旧的报告组件。如果客户端使用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。使用新控件进行打印DOESN&T使用IE。

(如果100多名用户每天打印50多份报告,则必须下载pdf并打印出一个很大的差异。)

https://docs.microsoft.com/en-us/sql/reporting-services/report-server/enable-and-disable-client-side-printing-for-reporting-services说: " 以前版本的Reporting Services使用的ActiveX控件需要从报表服务器下载到客户端计算机。如果将报表服务器升级到SQL Server 2016,则不会从报表服务器或客户端计算机中删除打印控件。"

这表明新服务器也可以通过旧的报表查看器控件进行ActiveX打印。如果可行,我可以将新控件放在旧控件旁边,然后逐渐将用户迁移到现代浏览器。

有没有人在没有重新启动和安装SQL Server 2014并升级的情况下工作?

1 个答案:

答案 0 :(得分:0)

将SSRS报告从2014年迁移到2016年。只需按照以下步骤操作:

  1. 备份和还原原始数据库
  2. 备份加密密钥
  3. 在具有托管服务帐户的新服务器上安装Ssrs 2016。
  4. 从报告数据库中的密钥表中还原数据库并删除服务器密钥条目。
  5. 配置Ssrs 2016以查看同一新实例上的新恢复数据库。
  6. 从备份恢复密钥。
  7. 或访问此链接:https://www.mssqltips.com/sqlservertip/2692/migrating-sql-reporting-services-to-a-new-server-by-moving-the-reporting-services-databases/