System.Environment.FailFast with ReadyToRun
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>
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>
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.
<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>
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.

