我在服务器 A 上安装了一个 SQL Server 2012 数据库实例。
然后我在服务器 B 上仅安装了 SSRS 2016(不是完整的 SQL Server 2016),但指向 SSRS 实例以在服务器 A 上安装的 SQL Server 2012 实例上托管其 ReportServer 数据库。
此时一切正常。
然后我需要将 SSRS 2016 升级到 SSRS 2017。 我使用了来自 https://www.microsoft.com/en-us/download/details.aspx?id=55252
的 Microsoft SQL Server 2017 Reporting Services 独立安装程序在 SSRS 2017 配置管理器中,我选择使用现有数据库并指向我在服务器 A 上的 SQL Server 2012 实例中拥有的 ReportServer 数据库。
在 SSRS 2017 配置管理器中,我删除了所有加密数据。 我可以浏览到报告门户网站 url,查看数据源和已部署的测试报告文件,但是当我尝试打开报告时,出现错误消息。
报表服务器数据库的版本格式无效,或者无法读取。找到的版本是“2017”。预期版本为“173”。 (rsInvalidReportServerDatabase)
我试过运行
delete from ReportServer.dbo.ServerUpgradeHistory where ServerVersion = 173
但我仍然得到同样的错误。
看起来旧版本值仍然存储在某个配置文件中。
我还应该看哪里,我还应该尝试什么?
我通过
解决了这个问题1- 备份 ReportServer 数据库,然后删除它们
2- 停止所有报告服务的窗口服务。让他们手动启动。
3- 打开 Reporting Services 配置表单开始菜单 > SQL Server {版本}
4- 从配置应用程序启动服务
5- 从数据库选项卡重新创建数据库
解决方法是将SQL Server 2016升级到Service Pack 2:SQLServer2016SP2-KB4052908-x64-ENU https://www.microsoft.com/en-us/download/details.aspx?id=56836
我发现的侵入性最小的解决方案是:
USE [ReportServer]
DELETE FROM ServerUpgradeHistory WHERE ServerVersion > 173
感谢@Henrik H 在以下帖子中: