System.Environment.FailFast with ReadyToRun

This article was translated from English: Does it need improvement?
Translated
View the article in English

Um aplicativo .NET trava no momento em que toca em uma classe IronPDF, terminando por meio de System.Environment.FailFast na inicialização ou durante a inicialização inicial. Quando o aplicativo é publicado com a compilação ReadyToRun (R2R), esse passo antecipado geralmente é a causa. Você mantém ReadyToRun ligado para o aplicativo e exclui IronPdf.dll dele.

The application requested process termination through System.Environment.FailFast. Message: Stack: at System.Environment.FailFast(System.String) at <Module>..cctor() at Program.<Main>$(System.String[])

ReadyToRun compila assemblages antecipadamente para acelerar a inicialização. Em alguns ambientes, esse passo antecipado interfere com bibliotecas que dependem de comportamento de inicialização em tempo de execução, entre elas o IronPDF. O processo pode falhar muito cedo, muitas vezes antes que qualquer registro do IronPDF esteja disponível, por isso nenhum log é escrito antes do travamento.

Este problema aparece apenas no ambiente implantado, tipicamente em aplicativos ASP.NET Core ou hospedados no IIS no Windows (incluindo o Windows Server) direcionando win-x64. A mesma máquina pode comportar-se de forma diferente dentro do IIS do que fora dele. Um caso de produção confirmado rodou o IronPDF 2026.4.1 no .NET 10, um aplicativo web ASP.NET Core sob o IIS (w3wp.exe), no Windows Server 2025 Datacenter no AWS EC2.

Solução

1. Mantenha ReadyToRun ativado

Não há necessidade de desativar ReadyToRun completamente. Se sua aplicação depende dele, deixe a propriedade no lugar:

<PropertyGroup>
  <PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
<PropertyGroup>
  <PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
XML

2. Exclua IronPdf.dll da compilação ReadyToRun

Adicione a exclusão ao seu .csproj:

<ItemGroup>
  <PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<ItemGroup>
  <PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
XML

Esta única linha é o que restaura o comportamento normal: ela permite que o resto do aplicativo seja compilado R2R enquanto deixa o IronPDF inicializar em tempo de execução como esperado.

CuidadoUse a sintaxe exata mostrada. Não envolva a exclusão dentro de outro bloco <PublishReadyToRunExclude>.

3. Exemplo completo de .csproj

Um arquivo de projeto funcional fica assim:

<PropertyGroup>
  <TargetFramework>net10.0</TargetFramework>
  <Nullable>enable</Nullable>
  <ImplicitUsings>enable</ImplicitUsings>
  <PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
<ItemGroup>
  <PackageReference Include="IronPdf" Version="2026.4.1" />
</ItemGroup>
<ItemGroup>
  <PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<PropertyGroup>
  <TargetFramework>net10.0</TargetFramework>
  <Nullable>enable</Nullable>
  <ImplicitUsings>enable</ImplicitUsings>
  <PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
<ItemGroup>
  <PackageReference Include="IronPdf" Version="2026.4.1" />
</ItemGroup>
<ItemGroup>
  <PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
XML

4. Republicar e relançar

Com o arquivo de projeto atualizado, envie uma nova compilação:

Reconstrua o aplicativo. Republica-o para o tempo de execução pretendido, como win-x64. Reimplante a compilação atualizada. Reinicie o site do IIS ou recicle o Pool de Aplicativos. Teste o mesmo caminho de código do IronPDF novamente.

No caso de produção confirmado, excluir IronPdf.dll da compilação ReadyToRun eliminou o acidente System.Environment.FailFast e o aplicativo funcionou normalmente sob o IIS.

Quando Tentar Esta Correção

Procurar isso quando os sintomas se alinharem:

  • PublishReadyToRun=true: ReadyToRun está ativado no aplicativo publicado.
  • Primeira chamada falha: a falha ocorre no momento em que uma classe IronPDF é tocada.
  • Tempo de inicialização: o erro aparece durante a inicialização ou preparação estática inicial.
  • Host do Windows implantado: o aplicativo roda sob IIS ou outro ambiente do Windows implantado.

Para orientação completa, veja Usando ReadyToRun com IronPDF.

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 ...

Leia mais
Pronto para começar?
Nuget Downloads 20,296,129 | Versão: 2026.7 recém-lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.