# 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.
```txt
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:
```xml
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
```
### 2. Exclua `IronPdf.dll` da compilação ReadyToRun
Adicione a exclusão ao seu `.csproj`:
```xml
<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.
[[e:(Use 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:
```xml
<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](/troubleshooting/use-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[])
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[])
Text
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:
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.
Cuidado: Use a sintaxe exata mostrada. Não envolva a exclusão dentro de outro bloco <PublishReadyToRunExclude>.
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.
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.