System.Environment.FailFast with ReadyToRun
Bir .NET uygulaması, IronPDF sınıfına ilk kez temas ettiği anda çöker, başlatma sırasında veya erken başlatmada System.Environment.FailFast ile sonlandırılır. Uygulama ReadyToRun (R2R) derlemesi ile yayımlandığında, genellikle sebep olan bu zamansal adımdır. Uygulama için ReadyToRun'u açık tutar ve IronPdf.dll'yı hariç tutarsınız.
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, başlangıcı hızlandırmak için derlemeleri önceden derler. Bazı ortamlarda bu zaman öncesi adım, IronPDF gibi çalışma zamanına bağlı olan kütüphanelerle çeliştiğinde etkileşime girer. Süreç çok erken aşamada başarısız olabilir, genellikle herhangi bir IronPDF günlüğü mevcut olmadan önce, bu yüzden çökmekten önce hiçbir günlük yazılmaz.
Bu sorun yalnızca dağıtılmış ortamda ortaya çıkar, genellikle hedefi win-x64 olan ASP.NET Core veya Windows (Windows Server dahil) üzerinde IIS barındırılan uygulamalarda. Aynı makine, IIS içinde ve dışında farklı davranabilir. Doğrulanmış bir üretim vakasında, IronPDF 2026.4.1 .NET 10 üzerinde, IIS altında (w3wp.exe) bir ASP.NET Core web uygulaması olarak, AWS EC2 üzerindeki Windows Server 2025 Datacenter'da çalıştırıldı.
Çözüm
1. ReadyToRun etkin bırakın
ReadyToRun'u tamamen devre dışı bırakmanıza gerek yok. Uygulamanız buna bağımlıysa, özelliği yerinde bırakın:
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
2. ReadyToRun derlemesinden IronPdf.dll hariç tutun
Hariç tutmayı .csproj'a ekleyin:
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
Bu tek satır, normal davranışı geri yükler: geri kalan uygulamayı R2R-derlenmiş bırakır, IronPDF'yi beklediği gibi çalışma zamanında başlatır.
<PublishReadyToRunExclude> kapsayıcı bloğu içine almayın.3. Tam .csproj örneği
Çalışan bir proje dosyası şöyle görünür:
<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. Tekrar yayımla ve tekrar dağıt
Proje dosyası güncellendiğinde, yepyeni bir derlemeyi gönderin:
- Uygulamayı yeniden derleyin.
- Hedeflediğiniz çalışma zamanı için tekrar yayınlayın, örneğin
win-x64. - Güncellenmiş derlemeyi tekrar dağıtın.
- IIS sitesi yeniden başlatın veya Uygulama Havuzunu geri dönüştürün.
- Aynı IronPDF kod yolunu tekrar test edin.
Doğrulanmış üretim vakasında, IronPdf.dll'ı ReadyToRun derlemesinden hariç tutmak, System.Environment.FailFast çökmesini temizledi ve uygulama IIS altında normal çalıştı.
Bu Düzelmeyi Ne Zaman Denemelisiniz
Belirtiler hizalandığında başvurun:
PublishReadyToRun=true: Yayınlanan uygulamada ReadyToRun etkinleştirildi.- İlk çağrı çöküyor: Hata, IronPDF sınıfına ilk temas edildiği anda meydana gelir.
- Başlangıç zamanlaması: Hata başlangıç sırasında veya erken statik başlatma sırasında görünür.
- Deploy edilen Windows Host: Uygulama IIS veya başka bir dağıtılmış Windows ortamında çalışır.
Tam yol göstermek için Using ReadyToRun with IronPDF adresine bakın.

