ABCpdf时不时会耗尽内存

时间:2008-10-06 20:41:58

标签: .net asp.net memory pdf abcpdf

我正在使用的第三方组件在名为ABCpdf.Net的VB.Net Web系统中构建动态PDF。 (不是一个可怕的工具,但也不是一个伟大的工具。)

每隔一段时间,由于我无法理解的原因,文档对象会抛出SEHException。更进一步,事实证明这是由WebSupergoo.ABCpdf6.Internal.PDFException类型的文档对象中的自定义异常引起的。内容仅包含非常有用的标题“无法获取图像数据。内存不足”通常在尝试将图像添加到PDF时会发生这种情况。由于这些图像的PNG小于100k,我猜它们的大小不是问题。

另外,真正奇怪的是,一旦这个问题开始发生,让它停止的唯一方法似乎是重新启动Web服务器,这显然有点低于标准。

有没有人遇到这个问题(甚至使用过这个工具?)

3 个答案:

答案 0 :(得分:2)

魅力。我得出的结论是必须发生的事情。你还在使用块的末尾调用doc.Clear()吗?

答案 1 :(得分:2)

三个月后更新:

尽管我已经知道了,当我们从ABCpdf 6升级到7时,内存问题都得到了解决。看起来版本7不再是带有.NET包装器的COM对象,而是来自底层的所有托管代码起来。它仍然不是那里最好的PDF生成器,但资源处理问题似乎已得到解决。

答案 2 :(得分:1)

之前我没有特别看过这个错误,但之前我们曾遇到过ABC PDF的内存问题。

简而言之,它不是一个完全托管的代码库,而只是一个围绕其COM版本的.NET包装器。话虽这么说,我们追查我们的内存使用问题,没有正确处理它们的对象。

所以,而不是:


Dim doc As New Doc()
'etc...

这样做:


    Dim doc as Doc
    Using doc As New Doc()
      'etc...
    End Using