Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过网站生成SSR,很好——通过代码,内存不足_C#_Reportingservices 2005 - Fatal编程技术网

C# 通过网站生成SSR,很好——通过代码,内存不足

C# 通过网站生成SSR,很好——通过代码,内存不足,c#,reportingservices-2005,C#,Reportingservices 2005,我有一份68000多页的报告,需要以PDF格式生成。(我加了逗号,这样你就知道这不是打字错误:) 如果我通过SSRS的网站/Web服务生成它,这实际上可以很好地工作。 它需要一分钟多一点的时间来生成第一页。在此期间,服务器CPU将达到100%,内存将达到2GB。生成第一个页面后,CPU和内存都会下降到它们的预报告状态。现在,如果我选择导出为PDF。服务器上的CPU变为100,但在生成pdf时,内存不会显著增加,可能是0.05GB(50MB)。这大约需要10-15分钟 现在如果我在代码中使用Ren

我有一份68000多页的报告,需要以PDF格式生成。(我加了逗号,这样你就知道这不是打字错误:) 如果我通过SSRS的网站/Web服务生成它,这实际上可以很好地工作。 它需要一分钟多一点的时间来生成第一页。在此期间,服务器CPU将达到100%,内存将达到2GB。生成第一个页面后,CPU和内存都会下降到它们的预报告状态。现在,如果我选择导出为PDF。服务器上的CPU变为100,但在生成pdf时,内存不会显著增加,可能是0.05GB(50MB)。这大约需要10-15分钟

现在如果我在代码中使用Render方法

rs.Render(Me.ReportName, Me.ContentType, Nothing, Nothing, ....
我将rs.超时设置为1800000/(30分钟)。服务器上的CPU和内存出现峰值,大约10分钟后,我出现内存不足异常。我相信来自服务器,而不是带有调用代码(web服务)的主机

现在我注意到当PDF通过SSRS网站呈现时,它会创建一个带有参数的新URL

ReportSession=gvrjxt4504wtpkiydu0o51fo
ControlID=5754f0889fb34bea80e7b5e97c120cfd
Culture=1033
UICulture=9
ReportStack=1
OpType=Export
FileName=Invoice+Session+Register+Batch
ContentDisposition=OnlyHtmlInline
Format=PDF
现在我相信正是这个ReportSession或ControlId使得PDF生成不会占用这么多内存

无论哪种方式,我的问题是如何通过代码模拟网站显示的行为

我将研究
LoadReport
方法,NULL也是可以传递给render方法的内容类型之一。但我找不到一个例子,也找不到它的作用和解释

所以在我进入所有这些兔子洞之前,有没有其他人做过类似的事情或者遇到过类似的项目


背景:如果我一次生成一页报告,运行和生成所有PDF需要9.5个小时。当我能够在10分钟内生成整个报告并使用PDFSharp拆分报告时,我真的很兴奋。现在我很有可能一次生成10000或20000个,但当一个方法工作时,它确实会使我困惑,但我不能在代码中复制它。

我遇到了类似的问题,并最终重新思考了我报告的内容。我有一张生成了大约12000页的图片,我得到的是一张在每一页上重复12次的图片。尽管它的大小只有几K,但12 X 12000 X未压缩内存版本的graphic很快就耗尽了内存。删除该图像并编写文本只解决了我的问题。我也一直无法在内存不足错误中找到一致性。有时报告会运行,有时不会。