Form İşleme Sırasında AccessViolationException (c0000005)
PDF formları işlenirken IronPDF, aynı giriş dosyasında bile güvenilir bir şekilde yeniden üretilemeyen, kesintili bir yerel AccessViolationException (kod c0000005) üretebilir. Bu, genellikle PdfDocument.Form eriştiğinizde ve PdfDocument.Flatten ile PdfDocument.Merge sırasında ortaya çıkar.
AccessViolationException (0xc0000005)
bad conversion while widening narrow string
Çökme, yerel form alanı tutamaçları ile yönetilen nesne yaşam süresi arasındaki etkileşimden kaynaklanır. Yerel form işlemleri hala devam ederken, PdfDocument çöp toplanır veya kapatılırsa, yerel katman zaten serbest bırakılmış olan belleğe erişir ve bu, erişim ihlaline sebep olur.
Yinelenen 'dar dizi genişletilirken kötü dönüşüm' uyarıları ve düzleştirme sırasında form alanı açıklamalarının kaldırılması hakkındaki uyarılar ayrı ve zararsız bir belirtidir. Bunlar, belirli bir PDF'deki Japon veya çok baytlı karakterler içeren dahili AcroForm alan dizgilerini ve meta verilerini kodlamaktan kaynaklanır. Bunlar, genel olarak Japon veya Unicode desteğiyle ilgili bir sorun göstermez, ne de Japon UNC dosya yollarıyla bir sorun göstermez.
Çözüm
1. Belgeleri Tüm İşlem İçin Aktif Tutun
Öneri: form işleme süresi boyunca PdfDocument değişkenini kapsamda tutun. Onu Using bloğuna sararak yaşam süresini açık hale getirin, sonra form alanı döngüsünden sonra belgeler kapatılmadan önceGC.KeepAlive(doc) çağrısını yapın.
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
GC.KeepAlive(doc), yerel form işlemleri hala çalışırken belgenin toplanmasını engeller ve bu, yerel kodun serbest bırakılmış belleğe erişebileceği süreyi kapatır.
2. Manuel GC.Collect() Çağrılarını Kaldırın
PDF ve form işleme sırasında herhangi bir GC.Collect() çağrısını silin. Orta işlemde toplama zorlamak, çökme sorununa neden olan yaşam süresi sorununu tetikleyebilir.
3. Sadece x64 Hedefleyin
Proje platform hedefini açıkça x64 olarak ayarlayın ve 32-bit Tercih Edilir seçeneğinin devre dışı olduğundan emin olun. x64 olarak çalıştırmak, yerel form çalışması sırasında 32-bit süreç kısıtlamalarından kaçınır.

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.