预览中的SSRS错误:"缓冲XML内容所需的大小超过了缓冲区配额"隐藏原始错误

时间:2014-04-23 08:50:07

标签: visual-studio-2010 wcf reporting-services sql-server-data-tools ssrs-2012

据我所知,我的报告肯定存在问题(例如列missmatcch),我需要更正它,但我看到的是隐藏实际问题的WCF错误消息,而且这种隐藏真的比原始问题更让我烦恼:列错配。

我想我们需要调整WCF的缓冲区大小'我们将获得原始问题消息。但是配置文件在哪里? 文本搜索" system.serviceModel"在C:\ Program Files(x86)\ Microsoft Visual Studio 10.0中没有带来好主意......

P.S。由于这只是报告的预览,我不认为这是SSRS配置问题。问题在DevStudio过程中的某处或在DevStudio的内部Web服务器进程中进行了本地化...

P.P.S请帮助我改进这个问题。我看到响应者并不了解我需要什么样的帮助。

14 个答案:

答案 0 :(得分:23)

我在SSRS预览中遇到过这个错误的多个“风味”。似乎预览模式的渲染器非常脆弱。

有一种简单的方法可以解决此问题。忽略错误并尝试将RDL文件上传到报告服务器。上传者会很高兴地告诉您文件的确切错误 - 它会告诉您哪个字段确实存在问题以及该问题是什么。如果有多个错误,您将被告知每个字段以及与每个字段相关的错误。

我可以使用以下任何一种方法创建此伪造XML缓冲区错误:

  • 添加新的Tablix,开始将其连接到数据集,然后取消。
  • 将一些文本复制/粘贴到MS Word文档的文本框中,其中一行或多行具有负右缩进(右列结束位于页边距之外)。
  • 使用varchar(8000)返回值连接数据集。

答案 1 :(得分:15)

请检查您的任何报告项是否引用了不在现有数据集范围内的字段。

这确实对我有用。

有关详细信息,请参阅以下链接: http://connect.microsoft.com/SQLServer/feedback/details/742913/ssdt-reporting-services-designer-error

答案 2 :(得分:2)

通过单击“刷新字段”向现有数据集添加新字段时,我看到了此错误。 数据集源是存储过程。结果是只有少数原始字段显示在数据集字段列表中,而不是新字段。如果我试图预览报告,我会收到XML缓冲区错误。

解决方法是不刷新字段,但点击添加新字段并最后在数据集属性字段中键入新字段名称。

之后工作得很好。

答案 3 :(得分:1)

编辑:我已根据修复问题更新了我的答案。

我在更改了多个存储过程并更新SSRS报告中的数据集名称后,目前遇到此问题。

当我尝试运行预览时,我得到完全相同的错误。

事实证明,在调查问题后,问题是我更改了数据集的名称属性。

enter image description here

我的报告中有几个地方,公式或表达式使用我重命名的数据集的旧名称属性。在恢复数据集名称之后,我设法得到了真实的错误,例如缺少字段等。在我将数据集名称属性设置回原来的错误之后,回到了原点错误。

我只将name属性更改回原来的状态,存储过程名称正确引用了我重命名的存储过程。

答案 4 :(得分:1)

我今天又遇到了这个错误。

我创建了一个表来保存数据以替换两个慢速查询。我改了一些名字来清理这个过程。

我认为该错误实际上意味着我的报告存在很多问题,即存放各种错误消息的缓冲区不够大而导致错误消息。

  

缓冲XML内容所需的大小超过了缓冲区配额

当然这应该是一个简单的解决方案,但微软已经表示他们无法修复

https://connect.microsoft.com/SQLServer/feedback/details/742913/ssdt-reporting-services-designer-error

答案 5 :(得分:0)

我在复制并粘贴Tablix时出现此问题,它将公式中的CDbl更改为Microsoft.ReportingServices.RdlObjectModel.ExpressionParser.VBFunctions.CDbl。我打开了XML并删除了“Microsoft.ReportingServices.RdlObjectModel.ExpressionParser.VBFunctions”的所有实例。然后报告工作了。

答案 6 :(得分:0)

对于工作报告,当我尝试添加列时,它给了我这个错误。我使用notepad ++编辑了.rdl文件。在SSRS提示从磁盘重新加载更改后,它没有问题。

答案 7 :(得分:0)

我将自定义代码复制到Visual Studio后出现此错误,以便高亮显示代码以提高可读性。好吧,Visual Studio将类定义添加到文件的开头和结尾。编辑代码后,我将其粘贴回报告自定义代码,然后出现此错误。修复只是从自定义代码中删除类定义(公共类Class1和End Class)。因此,请检查您的自定义代码(如果有)。

答案 8 :(得分:0)

在向现有报表添加一些新参数后出现此错误。

出于某种原因,当我首先创建参数然后修改数据集以使用新参数我得到了错误,但是当我首先修改数据集然后添加参数第二,我没有得到错误。

这对我来说似乎很奇怪,所以我通过从存储库恢复报告并使用每种方法重复该过程三次来测试它,并且每次都有相同的行为。

答案 9 :(得分:0)

可能的根本原因

  1. 参数名称不正确(案例/顺序)
  2. 访问不存在的财产 还有更多...
  3. 解决方案:要获得确切的错误消息,请

    1. 部署SSRS报告并查找错误:“Kim Crosser”已建议
    2. 暂时删除部分(SSRS /报告内容)您觉得没有错误可以释放缓冲区中的空间,以便您可以获得实际的错误消息。稍后将部分添加回页面(之前删除)。

答案 10 :(得分:0)

我也面临这个问题。我解决了这个查找和替换

  
      
  1. Microsoft.VisualBasic.Interaction.iif ==> IIF
  2.   
  3. Microsoft.ReportingServices.RdlObjectModel.ExpressionParser.VBFunctions.cdbl   ==> cdbl
  4.   

我希望这可以帮助某人。感谢

答案 11 :(得分:0)

我有同样的错误信息,这完全是由我做的。这有点令人尴尬,但如果有人帮助那么好!我不小心复制了我的数据集查询,其中包含一个小的子选择语句,我用它来检查参数/变量值。

答案 12 :(得分:0)

另一种解决方案是在Report Builder 3.0中打开.rdl文件(而不是Visual Studio)并尝试预览它。我发现这给了我错误的详细信息,但如果出现多个错误,它只会显示第一个错误。

答案 13 :(得分:0)

我以前将TextBox绑定到

字段!字段名称

并用

固定

字段!FieldName.Value

话虽如此,但同时发布了其他答案,此错误也会以不同的方式发生。包含字段属性“值”后,我的问题已解决。