# System.Environment.FailFast with ReadyToRun
Una aplicación .NET falla en el momento en que primero toca una clase de IronPDF, terminando a través de `System.Environment.FailFast` al inicio o durante la inicialización temprana. Cuando la aplicación se publica con la compilación ReadyToRun (R2R), ese paso de anticipación suele ser la causa. Mantienes ReadyToRun activado para la aplicación y excluyes `IronPdf.dll` de ella.
```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 ensamblados por anticipado para acelerar la carga inicial. En algunos entornos, ese paso de anticipación interfiere con bibliotecas que dependen del comportamiento de inicialización en tiempo de ejecución, entre ellas IronPDF. El proceso puede fallar muy temprano, a menudo antes de que cualquier registro de IronPDF esté disponible, por lo que no se escriben registros antes del bloqueo.
Este problema aparece solo en el entorno desplegado, típicamente en aplicaciones alojadas en ASP.NET Core o IIS en Windows (incluyendo Windows Server) que apuntan a `win-x64`. La misma máquina puede comportarse de manera diferente dentro de IIS que fuera de él. Un caso de producción confirmado ejecutó IronPDF `2026.4.1` en .NET 10, una aplicación web de ASP.NET Core bajo IIS (`w3wp.exe`), en Windows Server 2025 Datacenter en AWS EC2.
## Solución
### 1. Mantener ReadyToRun habilitado
No hay necesidad de desactivar ReadyToRun completamente. Si su aplicación depende de ello, deje la propiedad en su lugar:
```xml
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
```
### 2. Excluir `IronPdf.dll` de la compilación ReadyToRun
Añade la exclusión a tu `.csproj`:
```xml
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
```
Esta única línea es lo que restaura el comportamiento normal: deja el resto de la aplicación compilada con R2R mientras permite que IronPDF se inicie en tiempo de ejecución como espera.
[[e:(Use la sintaxis exacta que se muestra. No envuelva la exclusión dentro de otro bloque de contenedor `<PublishReadyToRunExclude>`.)]]
### 3. Ejemplo completo de `.csproj`
Un archivo de proyecto funcional se ve así:
```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. Republíquelo y vuelva a implementarlo
Con el archivo de proyecto actualizado, empuje una nueva compilación:
1. Reconstruya la aplicación.
2. Vuelve a publicar para tu tiempo de ejecución previsto, como `win-x64`.
3. Vuelva a implementar la compilación actualizada.
4. Reinicie el sitio IIS o recicle el grupo de aplicaciones.
5. Pruebe nuevamente el mismo camino del código de IronPDF.
En el caso de producción confirmado, excluir `IronPdf.dll` de la compilación ReadyToRun eliminó el fallo de `System.Environment.FailFast` y la aplicación se ejecutó normalmente bajo IIS.
## Cuándo Intentar Esta Solución
Opte por esta solución cuando los síntomas coincidan:
- **`PublishReadyToRun=true`:** ReadyToRun está habilitado en la aplicación publicada.
- **Primer llamada provoca fracaso:** el fallo ocurre en el momento en que se toca una clase de IronPDF.
- **Tiempo de inicio:** el error aparece durante la carga inicial o la inicialización estática temprana.
- **Host de Windows implementado:** la aplicación se ejecuta bajo IIS u otro entorno de Windows implementado.
Para obtener orientación completa, vea [Usando ReadyToRun con IronPDF](/troubleshooting/use-readytorun/).
Una aplicación .NET falla en el momento en que primero toca una clase de IronPDF, terminando a través de System.Environment.FailFast al inicio o durante la inicialización temprana. Cuando la aplicación se publica con la compilación ReadyToRun (R2R), ese paso de anticipación suele ser la causa. Mantienes ReadyToRun activado para la aplicación y excluyes IronPdf.dll de ella.
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 ensamblados por anticipado para acelerar la carga inicial. En algunos entornos, ese paso de anticipación interfiere con bibliotecas que dependen del comportamiento de inicialización en tiempo de ejecución, entre ellas IronPDF. El proceso puede fallar muy temprano, a menudo antes de que cualquier registro de IronPDF esté disponible, por lo que no se escriben registros antes del bloqueo.
Este problema aparece solo en el entorno desplegado, típicamente en aplicaciones alojadas en ASP.NET Core o IIS en Windows (incluyendo Windows Server) que apuntan a win-x64. La misma máquina puede comportarse de manera diferente dentro de IIS que fuera de él. Un caso de producción confirmado ejecutó IronPDF 2026.4.1 en .NET 10, una aplicación web de ASP.NET Core bajo IIS (w3wp.exe), en Windows Server 2025 Datacenter en AWS EC2.
Solución
1. Mantener ReadyToRun habilitado
No hay necesidad de desactivar ReadyToRun completamente. Si su aplicación depende de ello, deje la propiedad en su lugar:
Esta única línea es lo que restaura el comportamiento normal: deja el resto de la aplicación compilada con R2R mientras permite que IronPDF se inicie en tiempo de ejecución como espera.
Precaución: Use la sintaxis exacta que se muestra. No envuelva la exclusión dentro de otro bloque de contenedor <PublishReadyToRunExclude>.
Con el archivo de proyecto actualizado, empuje una nueva compilación:
Reconstruya la aplicación.
Vuelve a publicar para tu tiempo de ejecución previsto, como win-x64.
Vuelva a implementar la compilación actualizada.
Reinicie el sitio IIS o recicle el grupo de aplicaciones.
Pruebe nuevamente el mismo camino del código de IronPDF.
En el caso de producción confirmado, excluir IronPdf.dll de la compilación ReadyToRun eliminó el fallo de System.Environment.FailFast y la aplicación se ejecutó normalmente bajo IIS.
Cuándo Intentar Esta Solución
Opte por esta solución cuando los síntomas coincidan:
PublishReadyToRun=true: ReadyToRun está habilitado en la aplicación publicada.
Primer llamada provoca fracaso: el fallo ocurre en el momento en que se toca una clase de IronPDF.
Tiempo de inicio: el error aparece durante la carga inicial o la inicialización estática temprana.
Host de Windows implementado: la aplicación se ejecuta bajo IIS u otro entorno de Windows implementado.
Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.