2

私が取り組んでいるプロジェクトでは、サードパーティ コンポーネントを使用して、ABCpdf.Net という VB.Net Web システムで動的 PDF を構築しています。(ひどいツールではありませんが、優れたツールでもありません。)

ときどき、理由はわかりませんが、ドキュメント オブジェクトは SEHException をスローします。さらに調べてみると、これは WebSupergoo.ABCpdf6.Internal.PDFException 型のドキュメント オブジェクトのカスタム例外が原因であることが判明しました。内容には、あまり役に立たないタイトル「画像データを取得できません。メモリ不足です」のみが含まれています。通常、これは PDF に画像を追加しようとしたときに発生します。これらの画像は 100k 未満の PNG であるため、サイズは問題ではないと思います。

また、本当に奇妙なことは、この問題が発生し始めると、それを止める唯一の方法は Web サーバーを再起動することであるということです。これは明らかに標準以下です。

誰かがこの問題を経験したことがありますか (またはこのツールを使用したことがありますか?)

4

3 に答える 3

2

更新、3か月後:

私が知る限り、メモリの問題は ABCpdf 6 から 7 にアップグレードしたときにすべて解決されました。バージョン 7 はもはや .NET ラッパーを使用した COM オブジェクトではなく、すべてがボトムアップで管理されたコードのようです。これはまだ最高の PDF ジェネレーターではありませんが、リソースの破棄の問題は解決されたようです。

于 2009-01-09T18:44:13.547 に答える
2

魅力的な。私はそれが起こっているに違いないという結論に達しました。using ブロックの最後で doc.Clear() を呼び出しますか?

于 2008-10-06T21:27:08.493 に答える
1

以前にこのエラーを具体的に見たことはありませんが、以前に ABC PDF でメモリの問題が発生したことがあります。

簡単に言うと、これは完全に管理されたコード ベースではなく、単に COM バージョンの .NET ラッパーです。そうは言っても、メモリ使用量の問題は、オブジェクトを適切に破棄していないことが原因であることがわかりました。

したがって、代わりに:


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

これを行う:


    Dim doc as Doc
    Using doc As New Doc()
      'etc...
    End Using
于 2008-10-06T20:51:49.127 に答える