我有一个引用服务器上共享数据集的服务器报告。如果我将 a 添加ReportViewer
到页面并设置报表服务器 URL 和报表路径属性,它工作正常。
因为我需要查看报告的xml并进行一些预处理,所以我:-
使用手动下载报告:
ReportingService2010.GetItemDefinition(path)
。然后我将其转换为XDocument
.做我的预处理 - 这与数据集没有任何关系。
使用以下命令将 xml 定义加载到报表查看器中:
XDocument processedDocument; using (var sr = new StringReader(processedDocument.ToString())) { viewer.ServerReport.LoadReportDefinition(sr); }
当我尝试查看报告时,我在服务器错误日志中看到此错误:
Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException:
共享数据集定义流不存在。
为了找到错误的症结所在,我完全删除了第 2 步,这样我所做的就是下载报告,转换为 xml,然后将 xml 加载到ReportViewer
.
当数据集嵌入到报告中时,我没有遇到这个问题。
有什么想法吗?
预计到达时间:
如果我下载报告,转换为 XDocument,转换回 byte[] 然后使用 ReportingService2010.SetItemDefinition() 将报告保存在服务器上,它在 ReportViewer 中显示良好(指定路径时)。
这意味着问题不在 xml<->byte[] 转换中。当 ReportViewer 使用路径下载报告时,它必须对引用的共享数据集执行某些我没有执行的操作。