【发布时间】:2017-09-03 16:59:39
【问题描述】:
我不得不将某些应用程序使用的报表服务器从 SSRS 2014 升级到 SSRS 2016。
我手动进行了迁移,因为新旧 SSRS 安装在不同的机器上,我无法进行就地更新。
所以方法是(长话短说):
- 在 SSRS 2014 上备份 ReportServer
- 在新服务器上安装 SSRS 2016
- 恢复 ReportServer 数据库
- 更新其结构以匹配 SSRS 2016;我使用 Sql Compare 从 SSRS 2016 创建的专用的空 ReportServer 数据库中获取结构
- 在 ServerUpgradeHistory 中添加了 SSRS 2016 版本的记录 (173)
- 从 SSRS 2014 恢复了加密密钥。
一切正常,只有一个小问题。
当我尝试打开 SSRS Web Portal URL (http://...myServer.../Reports) 或刷新主页时,我收到以下错误弹出窗口。
此错误似乎不会影响 SSRS 的功能 - 所有报告都可以正常工作。打开 Web 服务 URL (http://...myServer.../ReportServer) 时也会出现。
到目前为止,这很烦人。
我在目录表中搜索了 guid 字符串(我认为它可能是一些文件夹名称或其他东西),但我什么也没找到。
有谁知道它来自哪里以及如何摆脱它?
谢谢
编辑
最近我从 SSRS 2016 更新到 2017 年,我一直带着这个错误。 但是我发现了有问题的项目。它在 Catalog 表中,类型 = 3(资源),mime-type application/octet-stream
我从目录中删除了它(我将它备份到一个单独的表中 - catalog_bak),但是当我在 (/reports) 中加载主页时仍然收到错误
除此之外,它再也不会弹出,只有一个例外:当我访问站点设置 -> 品牌时,它总是出现
我想这与品牌包装有关。 有谁知道它们存储在哪里,我该如何卸载/清理它?
【问题讨论】:
-
我假设您的一份报告中提到了该项目。由于 SSRS 在目录中找不到它会引发错误。检查原始服务器数据库中的项目是否存在以查看它是什么。
-
检查 ReportServer.dbo.Keys 你可能有对旧服务器的引用。
-
@alan,我查了 Keys 表,没有这个项目。
-
@niktrs - 我应该在哪些表中签入此项目?基本上,由于我转移了数据库备份,旧服务器上的数据库中的所有内容都应该在新服务器上的数据库中。还有什么想法吗?谢谢两位的建议
-
我会比较 2 个目录表并验证是否缺少任何内容
SELECT * FROM OLDSERVER.ReportSeverDB.dbo.Catalog WHERE NOT EXISTS (...NEWSERVER.ReportServerDB.dbo.Catalog...)
标签: reporting-services ssrs-2016 ssrs-2017