IRONSOFTWAREHOME

Exception AccessViolationException Durante o Processamento de Formulário (c0000005)

Curtis Chau
Curtis Chau
Updated: 3 de julho de 2026

Ao processar formulários PDF, o IronPDF pode lançar um AccessViolationException nativo intermitente (código c0000005) que não se reproduz de forma confiável, mesmo no mesmo arquivo de entrada. Ele aparece mais frequentemente quando você acessa PdfDocument.Form e durante PdfDocument.Flatten e PdfDocument.Merge.

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

A falha vem da interação entre manipuladores de campos de formulário nativos e o tempo de vida de objeto gerenciado. Se o PdfDocument for coletado como lixo ou descartado enquanto operações de formulário nativas ainda estão em andamento, a camada nativa acessa a memória que já foi liberada, o que produz a violação de acesso.

Os repetidos avisos de "má conversão ao alargar string estreita", juntamente com avisos sobre a remoção de anotações de campos de formulário durante o achatamento, são um sintoma separado e benigno. Eles vêm da decodificação de strings de campos AcroForm internos e metadados que contêm caracteres japoneses ou multibyte em um determinado PDF. Eles não indicam um problema com suporte geral a japonês ou Unicode, nem com caminhos de arquivo UNC em japonês.

Solução

1. Mantenha o Documento Vivo durante Toda a Operação

Recomendado: mantenha o PdfDocument em escopo durante toda a duração do processamento de formulário. Envolva-o em um bloco Using para que seu tempo de vida seja explícito, então chame GC.KeepAlive(doc) após o loop de campos de formulário, antes que o documento seja descartado.

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

O GC.KeepAlive(doc) impede que o tempo de execução colete o documento enquanto operações de formulário nativas ainda estão em execução, fechando a janela em que o código nativo pode acessar memória liberada.

2. Remova Chamadas Manuais de GC.Collect()

Exclua quaisquer chamadas GC.Collect() durante o processamento de PDF e formulário. Forçar a coleta no meio da operação pode desencadear exatamente o problema de tempo de vida que causa a falha.

3. Alvo Somente x64

Defina explicitamente o alvo da plataforma do projeto para x64, e certifique-se de que Preferir 32 bits está desativado. Executar como x64 evita as limitações de um processo de 32 bits durante o trabalho com formulários nativos.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Pronto para começar?

Nuget Downloads 21,253,952Versão:2026.10recém-lançado

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.
Biblioteca NuGet C# para PDF
Instalar com NuGet

Versão: 2026.10

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. No Solution Explorer, clique com o botão direito do mouse em Referências e selecione Gerenciar Pacotes NuGet.
  2. Selecione Procurar e pesquise "IronPDF".
  3. Selecione o pacote e instale.
DLL de PDF em C#
Baixar DLL

Versão: 2026.10

ou faça o download do Windows Installer aqui .

  1. Baixe e descompacte o IronPDF em um local como ~/Libs dentro do diretório da sua solução.
  2. No Solution Explorer do Visual Studio, clique com o botão direito do mouse em Referências. Selecione Procurar e digite "IronPDF.dll".

Licenças a partir de US$ 999

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Os seus dados serão sempre mantidos em sigilo.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Aprovado por milhões de engenheiros em todo o mundo.
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.
Biblioteca NuGet C# para PDF
Instalar com NuGet

Versão: 2026.10

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. No Solution Explorer, clique com o botão direito do mouse em Referências e selecione Gerenciar Pacotes NuGet.
  2. Selecione Procurar e pesquise "IronPDF".
  3. Selecione o pacote e instale.
DLL de PDF em C#
Baixar DLL

Versão: 2026.10

ou faça o download do Windows Installer aqui .

  1. Baixe e descompacte o IronPDF em um local como ~/Libs dentro do diretório da sua solução.
  2. No Solution Explorer do Visual Studio, clique com o botão direito do mouse em Referências. Selecione Procurar e digite "IronPDF.dll".

Licenças a partir de US$ 999