System.Environment.FailFast with ReadyToRun
.NET 애플리케이션이 IronPDF 클래스를 처음 접하자마자 충돌하여 시작 시 또는 초기 초기화 중에 System.Environment.FailFast를 통해 종료됩니다. 앱이 ReadyToRun (R2R) 컴파일로 게시될 때 사전 컴파일 단계가 일반적인 원인입니다. 애플리케이션에 대한 ReadyToRun을 계속 켜고 IronPdf.dll를 제외합니다.
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은 시작을 가속화하기 위해 어셈블리를 사전에 컴파일합니다. 일부 환경에서는 사용 시 초기화 동작에 의존하는 라이브러리, 특히 IronPDF와의 간섭이 발생할 수 있습니다. 이 과정은 매우 초기 단계에서 실패할 수 있으며, 이는 충돌 전에 IronPDF 로깅이 제공되지 않는 이유입니다.
이 문제는 배포된 환경에서만 나타나며, 일반적으로 win-x64를 타깃으로 하는 Windows(Windows Server 포함)에서 ASP.NET Core 또는 IIS에 호스팅된 앱에서 발생합니다. 한 대의 기기가 IIS 내부에서는 다르게 작동할 수 있습니다. 확인된 프로덕션 사례에서 IronPDF 2026.4.1는 AWS EC2의 Windows Server 2025 Datacenter에서 IIS(w3wp.exe) 아래 ASP.NET Core 웹 앱으로 .NET 10에서 실행되었습니다.
해결책
1. ReadyToRun 유지
ReadyToRun을 비활성화할 필요는 없습니다. 애플리케이션이 이를 의존하고 있다면, 속성을 그대로 두십시오:
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
2. IronPdf.dll를 ReadyToRun 컴파일에서 제외
제외 사항을 .csproj에 추가하십시오:
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
이는 정상적인 동작을 복원하는 단 한 줄: 애플리케이션의 나머지는 R2R로 컴파일된 상태로 남고, IronPDF는 런타임에 초기화될 수 있습니다.
<PublishReadyToRunExclude> 컨테이너 블록 내에 제외를 삽입하지 마세요.3. 전체 .csproj 예제
작동하는 프로젝트 파일은 다음과 같습니다:
<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. 다시 게시 및 재배포
프로젝트 파일이 업데이트된 후 새 빌드를 푸시합니다:
- 애플리케이션을 다시 빌드합니다.
win-x64과 같은 의도한 런타임에 대해 다시 게시합니다.- 업데이트된 빌드를 재배포하세요.
- IIS 사이트를 다시 시작하거나 응용 프로그램 풀을 재활용하세요.
- 동일한 IronPDF 코드 경로를 다시 테스트하세요.
확인된 프로덕션 사례에서 IronPdf.dll를 ReadyToRun 컴파일에서 제외하면 System.Environment.FailFast 충돌이 해결되었으며 앱은 IIS에서 정상적으로 실행되었습니다.
이 수정 사항을 시도할 시기
증상이 일치할 때 이를 사용하세요:
PublishReadyToRun=true: 게시된 앱에서 ReadyToRun이 활성화되었습니다.- 첫 번째 호출 충돌: IronPDF 클래스에 닿는 순간에 실패가 발생합니다.
- 시작 시점: 시작 또는 초기 정적 초기화 중에 오류가 나타납니다.
- 배포된 Windows 호스트: 이 애플리케이션은 IIS 또는 다른 배포된 Windows 환경에서 실행됩니다.
전체 지침은 IronPDF와 함께 ReadyToRun 사용을 참조하세요.

