IRONSOFTWAREHOME

AccessViolationException Lors du Traitement des Formulaires (c0000005)

Curtis Chau
Curtis Chau
Updated: 3 juillet 2026

Lors du traitement des formulaires PDF, IronPDF peut lancer un AccessViolationException natif intermittent (code c0000005) qui ne se reproduit pas de manière fiable, même sur le même fichier d'entrée. Il apparaît le plus souvent lorsque vous accédez à PdfDocument.Form et pendant PdfDocument.Flatten et PdfDocument.Merge.

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

Le crash provient de l'interaction entre les handles de champs de formulaire natifs et la durée de vie des objets gérés. Si le PdfDocument est collecté par le garbage collector ou disposé alors que les opérations de formulaire natif sont toujours en cours, la couche native accède à une mémoire qui a déjà été libérée, ce qui produit la violation d'accès.

Les avertissements répétés 'mauvaise conversion lors de l'élargissement d'une chaîne étroite', ainsi que les avertissements concernant la suppression des annotations de champs de formulaire lors de l'aplatissement, sont un symptôme distinct et bénin. Ils proviennent du décodage des chaînes de champs internes AcroForm et des métadonnées qui contiennent des caractères japonais ou multioctets dans un PDF donné. Ils n'indiquent pas un problème avec le support du japonais ou de l'Unicode en général, ni avec les chemins de fichiers UNC japonais.

Solution

1. Gardez le Document Actif pour l'Opération Complète

Recommandé : conservez le PdfDocument dans la portée pendant toute la durée du traitement du formulaire. Enveloppez-le dans un bloc Using pour que sa durée de vie soit explicite, puis appelez GC.KeepAlive(doc) après la boucle de champ de formulaire, avant que le document ne soit disposé.

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) empêche l'exécution de collecter le document alors que les opérations de formulaire natif sont toujours en cours, clôturant ainsi la fenêtre dans laquelle le code natif peut accéder à une mémoire libérée.

2. Supprimez les Appels Manuels à GC.Collect()

Supprimez tous les appels à GC.Collect() pendant le traitement des PDF et des formulaires. Forcer la collecte en cours d'opération peut déclencher exactement le problème de durée de vie qui provoque le crash.

3. Visez uniquement x64

Définissez explicitement la cible de la plateforme du projet sur x64, et assurez-vous que Prefer 32-bit est désactivé. Exécuter en tant que x64 évite les contraintes d'un processus 32 bits lors de travaux de formulaire natif.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.

...
Lire la suite

Prêt à commencer ?

Nuget Downloads 21,253,952Version :2026.10vient de sortir

Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.10

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.10

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 999 $

Vous avez une question ? Contactez notre équipe de développement.

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Vos informations seront toujours gardées confidentielles.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
De confiance par des millions d'ingénieurs dans le monde entier
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.10

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.10

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 999 $