首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >winnovative pdf -内存不足和其他随机异常

winnovative pdf -内存不足和其他随机异常
EN

Stack Overflow用户
提问于 2010-01-14 12:00:02
回答 2查看 3.1K关注 0票数 3

我们有一个asp.net 3.5应用程序,允许用户生成许多图表并通过pdf导出它们。这适用于较小的pdf(少于100页),但当我们使用较大的pdf时,我们会得到随机错误。我们看到的一些错误是:

--System.OutOf内存异常

--无法呈现HTML字符串。无法从html字符串中获取图像。尝试设置LoadHtmlConcurrencyLevel = 1..

--克隆错误。内存不足..

--等待转换完成时超时。

--System.OutOfMemoryException:内存不足。at System.Drawing.Image.FromStream(流媒体,Boolean useEmbeddedColorManagement,Boolean validateImageData) at System.Drawing.Image.FromStream(流媒体)

如果我多次运行大报告,我通常会得到不同的异常。有时,我可能会使IIS崩溃,我必须执行iisreset才能使应用程序重新启动。

下面是我们运行的代码。我们使用图表(png图像)创建PDF文档,然后将其导出为字节数组,并将其放入内存流中。我们将内存流传递给旋转一些图像等的函数,然后调用doc.save方法将其导出。

代码语言:javascript
复制
Dim mainPageBytes() As Byte = PDF.GetBytes
Dim stream As New System.IO.MemoryStream(mainPageBytes)
Dim existingDoc As New PDFCreator.Document(stream)
Dim doc As PDFCreator.Document = GetDocument(mainPageBytes,    GetChartingPageNumbers(PDF.ConversionSummary), pageOrientation, user, existingDoc)
doc.Save(response, True, Me.DocumentName)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-14 12:30:53

IIS对在其上运行的脚本有内存和运行时的限制。您的脚本可能超出了运行时和/或内存限制。可以在IIS配置设置中设置它们,但它们通常是有原因的(防止单个脚本耗尽服务器上的所有内存,或者防止脚本永远在无限循环中运行,除非重新启动IIS,否则您将无法退出。)

打开调试(禁用这些限制),并通过将queryObj("PeakWorkingSetSize")输出到日志文件来确定脚本崩溃时实际使用了多少内存。

票数 3
EN

Stack Overflow用户

发布于 2014-08-08 14:48:25

您是否按照产品文档中的建议在64位进程中运行转换器?您可以查看deployment requirements in our online documentation。在32位模式下,.NET的可用内存非常有限。在IIS中,您必须确保32位应用程序标志为false。

此外,为了在转换包含大量大图像的HTML页时减少内存使用量,可以将ImagesScalingEnabled属性设置为false。您可以在set images scaling and JPEG compression level demo中找到此功能的完整示例代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2062075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档