2017-06-05 102 views
0

我有一个SSRS报告(SSRS 2012),当我尝试导出到Excel时,一分钟左右发生500次服务器错误后总是崩溃。SSRS导出到Excel结果(500)服务器错误

报告本身成功运行。而且我可以成功地将结果导出为CSV,在报告本身渲染后实际只需要几秒钟的时间。

我在遇到大于20000条记录的结果集时遇到此问题;我目前的例子有36000条记录 - 它导致Excel导出崩溃,但CSV导出成功。

我试过检查SSRS日志(C:\Program Files\Microsoft SQL Server\MSRS11.SQL2012\Reporting Services\LogFiles)没有错误显示在那里,只有几个条目RenderForNewSessionRenderFromSession指向我的报告。

事件查看器应用程序日志显示了ASP.NET 2.0警告条目:

Exception information: Exception type: COMException Exception message: This network connection does not exist. (Exception from HRESULT: 0x800708CA)

还有其它任何地方,我会觉得非常有用的调试信息?如果我不需要,我真的不必指示客户端“不要将大型报告导出到Excel中,而是使用CSV”。或者当从SSRS网络报告查看器导出到Excel时,是否有任何已知问题或怪癖?

编辑:

一些进一步的挖掘后,我发现一些更多的信息,但还没有找到一个实际的解决方案。我确实找到了可以在日志中调出调试级别的位置 - 在ReportingSErvicesService.exe.config文件中,有两个设置,DefaultTraceSwitchComponents,位于RSTrace标记下方。它们的默认值为3,但是每个碰撞到4都提供了看起来很详细的日志记录输出。

这很有意思,但并没有真正指出我除了确认它看起来像客户端执行超时之外的任何新东西。

接下来我遇到了一个TechNet article that at least seems to describe the various places I might be able to set an SSRS timeout。从我可以告诉它,似乎Excel导出渲染器正在执行某个地方的执行超时,但所有SSRS设置似乎涵盖了足够的空间来运行任何东西。

如果web.config httpRuntimeexecutionTimeout设置覆盖machine.config设置? TechNet文章暗示,machine.config设置似乎与导出时看到的超时一致,但ReportServer web.config的executionTimeout设置比ASP.NET默认设置大得多。

回答

0

对你的一个想法是数据的输出有一些Excel无法处理但csv可以。因此,数据中的换行符或这些行中的内容。

如果将结果限制为只返回1行,会发生什么情况?没有行返回?它会输出Excel吗?

此外,我从SSRS知道你可以输出数据到新的标签,你是否使用该功能,并可能用完标签?

Reporting Services export to Excel with Multiple Worksheets

+0

感谢您的提示。它没有对标签做任何有趣的事情,它只是一个直接的数据转储。关于坏数据的有趣想法 - 我会看看是否可以限制一些行。它看起来好像与数据量有关 - 它发生在多个不同的报告上,大约在20k行左右。 –

0

不知道这是否是同样的问题,但我已经受够了出口到Excel中有一个单元的字符太多麻烦。如果只遇到1个具有超过32745个字符的单元格,则整个导出会崩溃。

我不得不开始在我的文本框中添加截断代码来截断导出到Excel的单元格文本,并为我解决了这个问题 - 虽然并不总是一个可行的选项,但只是一个建议。

IIf(Globals!RenderFormat.Name= "EXCELOPENXML" OR Globals!RenderFormat.Name = "EXCEL", 
      Left(Join(Fields!FieldA.Value, chr(10)),32745) + "...Truncated for Excel", 
Join(Fields!FieldA.Value, chr(10))) 

否则,这里的显示部分出口到Excel的局限性,从报表服务的链接:https://docs.microsoft.com/en-us/sql/reporting-services/report-builder/exporting-to-microsoft-excel-report-builder-and-ssrs

+0

从我的分析来看,这不应该是我的数据集的问题。它似乎是脚本运行时的产物。我用更多的调试信息更新了我的问题。 –

0

的想法糅合在一起,但这往往是在SSRS 2008 R2

作为一个问题对于SSRS2012 - 有两种excel导出格式

Version of SSRS  Render format name to use 
2008 R2    EXCEL 
2012     EXCELOPENXML 

是否有可能打开2008r2版本? (其具有65K行限制)。如果是这样,你可以关闭服务器上ssrs配置中的这个选项(但会关闭所有报告)

对于36K行,即使在EXCEL(2008r2)导出中也不应该存在此问题,但有没有可能为每个结果输出2行?

+0

发生异常的调用实际上是调用'EXCELOPENXML'格式,所以我应该对行数进行优化。我已经用我发现的更多信息更新了这个问题。 –