2016-10-04 76 views
0

当试图将报告导出为ex​​cel时,网站加载了一段时间,我收到“此页无法显示,请确保网址正确”错误。Sharepoint集成的SSRS报告excel导出失败

这里有一些平台详细信息:

  • SQL Server 2012的SP2的
  • 的Sharepoint 2013
  • 与SharePoint集成模式
  • 的Windows Server SS报告服务2012 R2

的报告本身具有4-5个参数,调用一些视图和一个过程,并显示具有30列的120K行最大。没有过滤的整个报告可以在SSMS中执行约7秒。 SP网站可以很好地显示rdl的结果,报告显示正确和快速。我也可以将结果导出到csv,xml,它的所有120K行。但是,当涉及到出口到Excel,它卡住了。

现在,这是它变得有趣。

当使用某些参数或日期筛选进行调用时,报告出色且简单,并且可以无延迟地导出到Excel。我已经测试了越来越多的行和excel导出工作,最多可以处理大约50K行。导出的xlsx文件大约为9MB。但是,当我增加日期范围时,excel导出超时。

现在,我试过的东西。

导出到其他格式工作正常。只是EXCELOPENXML不起作用。

增加ProcessTimeoutProcessTimeoutGcExtension甚至rsreportserver.config没有帮助增加DatabaseQueryTimeout键的值。

web.config中增加的executionTimeout的maxRequestLength键的值也没有效果。

配置更改后,我重新启动了Reporting Server服务。

我怀疑SQL 2012中有10MB的excel导出错误,但应该使用应用于此系统的SP2来解决这个问题。

此外,在显示错误消息前几分钟,网站要求重新登录到SharePoint站点。这发生在几分钟后击中Excel导出。我想确保在进行任何IIS配置更改之前,所有内容都应该在sql方面。

任何想法?

回答

0

经过几天的试验和错误,我找到了这个问题的原因。

的问题是在与“转到URL”动作属性的列和网址是由字符串连接的表达集,从报告中的字段服用4个参数。显然SSRS在输出到excel的过程中再处理所有数百K的数据。 为什么CSV和XML格式,能够处理相同的报告,但擅长投掷超时的原因仍然是一个谜给我。我可以推测的是,excel渲染器需要更多的处理时间来格式化单元格。

另一种方式来解决这个问题可能已经使报告快照,因此报告数据会从缓存中被消耗掉,但我不知道Excel导出仍会重新处理报告或不。

我用相同的数据添加另一列,但添加下面的表达式列visibility属性解决了这个问题:

=(Globals!RenderFormat.Name="EXCELOPENXML")

所以,现在,随着参数字符串操作成功加工成网页视图中的网址格式,但不在Excel呈现器中处理。

希望这可以帮助别人。