IRONSOFTWAREHOME

AccessViolationException Durante el Procesamiento de Formularios (c0000005)

Curtis Chau
Curtis Chau
Updated: 3 de julio de 2026

Al procesar formularios PDF, IronPDF puede lanzar un AccessViolationException nativo intermitente (código c0000005) que no se reproduce de manera confiable, incluso con el mismo archivo de entrada. Aparece con mayor frecuencia cuando accedes a PdfDocument.Form y durante PdfDocument.Flatten y PdfDocument.Merge.

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

El fallo proviene de la interacción entre los controladores de campos de formulario nativos y el tiempo de vida de los objetos gestionados. Si el PdfDocument es recogido por el recolector de basura o eliminado mientras las operaciones nativas del formulario aún están en proceso, la capa nativa accede a la memoria que ya ha sido liberada, lo que produce la violación de acceso.

Las repetidas advertencias de "mala conversión al ampliar una cadena estrecha", junto con las advertencias sobre la eliminación de anotaciones de campos de formulario durante la aplanación, son un síntoma separado e inocuo. Provienen de decodificar cadenas de campos internos de AcroForm y metadatos que contienen caracteres japoneses o multibyte en un PDF dado. No indican un problema con el soporte de japonés o Unicode en general, ni con las rutas de archivo UNC japonesas.

Solución

1. Mantener el Documento Vivo Durante Toda la Operación

Recomendado: mantén el PdfDocument dentro del alcance durante toda la duración del procesamiento del formulario. Envuélvelo en un bloque Using para que su tiempo de vida sea explícito, luego llama a GC.KeepAlive(doc) después del bucle del campo del formulario, antes de que se elimine el documento.

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) detiene el tiempo de ejecución de recoger el documento mientras las operaciones nativas del formulario todavía están en ejecución, cerrando la ventana en la que el código nativo puede acceder a la memoria liberada.

2. Eliminar Llamadas Manuales a GC.Collect()

Elimina cualquier llamada a GC.Collect() durante el procesamiento de PDFs y formularios. Forzar la recolección a mitad de operación puede desencadenar exactamente el problema de tiempo de vida que causa el fallo.

3. Objetivo Solo x64

Establece explícitamente el objetivo de la plataforma del proyecto a x64, y asegúrate de que Preferir 32 bits esté deshabilitado. Ejecutar como x64 evita las limitaciones de un proceso de 32 bits durante el trabajo con formularios nativos.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.

...
Leer más

¿Listo para empezar?

Nuget Downloads 21,253,952Versión:2026.10recién publicada

Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.10

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronPDF"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.10

o descargue el Instalador de Windows aquí.

  1. Descargue y descomprima IronPDF en una ubicación como ~/Libs dentro del directorio de su solución
  2. En el Explorador de Soluciones de Visual Studio, haga clic derecho en Referencias. Seleccione Examinar, "IronPDF.dll"

Licencias desde $999

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Tus detalles siempre serán mantenidos confidenciales.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Confiado por millones de ingenieros en todo el mundo
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.10

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronPDF"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.10

o descargue el Instalador de Windows aquí.

  1. Descargue y descomprima IronPDF en una ubicación como ~/Libs dentro del directorio de su solución
  2. En el Explorador de Soluciones de Visual Studio, haga clic derecho en Referencias. Seleccione Examinar, "IronPDF.dll"

Licencias desde $999