3

好的,有类似的问题,但这不是重复的。当您有引用共享数据集的参数时,似乎会出现此错误。在我的情况下,从服务器中删除报告并重新部署并不能解决问题。

因此,我正在使用商业智能开发工作室 BIDS 在 VS 2010 Professional 上进行开发,BIDS 受 Team Foundation Server 的源代码控制。我正在部署到我认为可能是问题的 2008R2 服务器。解决方法是更改​​要嵌入的数据集引用,而不是阻止这个错误死在它的轨道上,但在我看来这很糟糕,我希望最终能对共享数据集进行这项工作。

我尝试过的事情:

  1. 确保数据集的命名与参考相匹配。EG:“名称是 ClientQuery,共享数据集是 ClientQuery”
  2. 确保服务器上的命名与步骤 1 中的引用相匹配。
  3. 通过删除对共享数据集的引用,确保这是破坏它的原因,然后立即工作。
  4. 确保共享数据集未在服务器上启用某种类型的缓存。
  5. 我在第二个共享数据集限制范围上有一个过滤器,我删除了它,但仍然存在错误。
  6. 删除了所有参数,只添加了一个共享数据集,它立即给出错误。
  7. 为参数绑定添加了一个选项,以说明:“允许空值”。也对 Null 进行了此操作。
  8. 重新创建了所有内容,一个全新的 RDL 文件,并仅在报告正文上复制和粘贴元素,但明确创建了参数和数据集,这仍然会发生。

9. 更新 - 我已经完成了旧的 RDL 销毁,然后希望重新部署。我在网上发现了很多。这在这种情况下不起作用。它几乎就像 RDL 中的这个参考:

    < DataSet Name="**ClientQuery**">
      < SharedDataSet>
        < SharedDataSetReference>**ClientQuery**</SharedDataSetReference>
      < /SharedDataSet>
      < Fields>
        < Field Name="CUSTOMER_ID">
          < DataField>CUSTOMER_ID</DataField>
          < rd:TypeName>System.String</rd:TypeName>
        < /Field>
        < Field Name="CUSTOMER_NAME">
          < DataField>CUSTOMER_NAME</DataField>
          < rd:TypeName>System.String</rd:TypeName>
        < /Field>
      < /Fields>
    < /DataSet>

似乎以某种方式提及此引用会造成严重破坏。我会检查我的项目下的 bin(environment) 目录。(我为多个环境部署并在解决方案配置下设置 QA、UAT、PROD 等)每次 RDL 都按应有的方式进行更新并发布我正在显示的更新。我认为当人们看到他们的报告文件没有在服务器上更新时,“重建”是很多问题,在我的情况下,重建通常会更新 RDL,而不是先点击部署。

虽然所有这一切都在发生,但困难的部分是它每次都可以无缝地在 BIDS 上进行更改。所以错误完全是在处理源服务器认为 rdl 数据所代表的内容。

非常感谢任何帮助,我会评价自己在 SSRS 上的先进水平,但这让我很难理解错误所指的是它没有得到什么。

4

2 回答 2

3

我知道这是一个老问题,但我刚刚遇到这个问题并能够解决我的问题。认为更新的选项对于其他挣扎于它的人来说是必要的。我的问题与共享数据集属性上的参数设置有关。菜单如下所示:

在此处输入图像描述

具体来说,请确保在需要时选中“允许空值”选项。这立即解决了我的问题,即数据集在指向共享但嵌入数据集时不起作用。

于 2016-12-15T16:14:47.013 回答
1

好的,所以 Jeroen 和其他人提出的答案是对的。我的问题是我的源代码位于较旧的 SVN 源代码控制下,该版本部署到 SSRS 2008 服务器,然后我们将代码库迁移到 TFS 源代码控制。问题似乎是共享数据集认为是与实际不同的标识符。除了删除文件之外,简单的解决方法是重新部署共享数据集。在我的情况下,我进入我的项目设置并将它们完全部署到报告结构下的不同位置,以将它们保持在同一区域,因此:报告/数据集而不仅仅是数据集。这似乎解决了我的问题,所以我相信这只是一场完美的风暴。对 SSRS 有疑问,我猜只是删除所有内容并从头开始。

于 2013-04-19T23:20:15.843 回答