IRONSOFTWAREHOME

フォーム処理中のAccessViolationException (c0000005)

Curtis Chau
Curtis Chau
Updated: 2026年7月3日

PDFフォームを処理する際に、IronPDFはインターミッテントなネイティブAccessViolationException (コードPdfDocument.Mergeの間によく発生します。

AccessViolationException (0xc0000005)
bad conversion while widening narrow string
Text

クラッシュは、ネイティブのフォームフィールドハンドルとマネージドオブジェクトのライフタイムの相互作用から生じます。ネイティブフォーム操作がまだ進行中にPdfDocumentがガベージコレクションされたり破棄されたりすると、ネイティブレイヤーが既に解放されたメモリにアクセスし、アクセス違反を引き起こします。

"狭い文字列の拡大中の変換失敗"警告の繰り返しと、フラッテン化中のフォームフィールド注釈の削除に関する警告は、別個の無害な症状です。 これらは、あるPDF内の日本語やマルチバイト文字を含む内部AcroFormフィールドの文字列とメタデータをデコードすることから生じます。 これらは、日本語やUnicodeサポート一般、または日本語のUNCファイルパスに問題があることを示すものではありません。

解決策

1. ドキュメントを完全な操作で生かしておく

推奨: フォーム処理の全期間、PdfDocumentをスコープ内に保持してください。 GC.KeepAlive(doc)を呼び出します。

Using doc As IronPdf.PdfDocument = IronPdf.PdfDocument.FromFile(tempPdfPath)
    For Each field In doc.Form
        ' Your form field processing here
    Next
    GC.KeepAlive(doc)
End Using
Text

GC.KeepAlive(doc)は、ネイティブフォーム操作がまだ実行中の間にランタイムがドキュメントを収集するのを防ぎ、ネイティブコードが解放されたメモリにアクセスする可能性のあるウィンドウを閉じます。

2. 手動GC.Collect()呼び出しを削除する

PDFおよびフォーム処理中のGC.Collect()呼び出しを削除してください。 操作中にコレクションを強制することは、クラッシュの原因となる正確なライフタイムの問題を引き起こすことがあります。

3. x64のみにターゲット設定

プロジェクトのプラットフォームターゲットをx64に明示的に設定し、Prefer 32-bitが無効であることを確認してください。 x64として実行することは、ネイティブフォーム作業中の32ビットプロセスの制約を回避します。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

準備はできましたか?

Nuget Downloads 21,253,952バージョン:2026.9リリースされたばかり

あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
あなたの詳細は常に守秘されます。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
世界中の数百万人のエンジニアから信頼されています。
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から