IRONSOFTWAREHOME

表单处理期间的AccessViolationException (c0000005)

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

在处理PDF表单时,IronPDF可能会抛出间歇性的本机PdfDocument.Merge期间出现。

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

崩溃来自于本机表单字段句柄与托管对象生命周期之间的交互。如果PdfDocument在本机表单操作仍在进行时被垃圾回收或处置,本机层会访问已被释放的内存,从而导致访问冲突。

反复出现的"加宽窄字符串时转换错误"警告,以及在平坦化过程中关于移除表单字段注释的警告,是单独且无害的症状。 它们来自于解码内部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,并确保首选32位被禁用。 以x64运行避免了在本机表单工作期间的32位进程的约束。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

准备开始了吗?

Nuget Downloads 21,253,952版本:2026.10刚刚发布

立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.10

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.10

或在此处下载 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

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
您的资料将始终保密。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
深受全球数百万工程师信赖
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.10

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.10

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999 起