System.Environment.FailFast with ReadyToRun

This article was translated from English: Does it need improvement?
Translated
View the article in English

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>
XML

2. ReadyToRun derlemesinden IronPdf.dll hariç tutun

Hariç tutmayı .csproj'a ekleyin:

<ItemGroup>
  <PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<ItemGroup>
  <PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
XML

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.

DikkatGösterilen tam sözdizimini kullanın. Hariç tutmayı başka bir <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>
XML

4. Tekrar yayımla ve tekrar dağıt

Proje dosyası güncellendiğinde, yepyeni bir derlemeyi gönderin:

  1. Uygulamayı yeniden derleyin.
  2. Hedeflediğiniz çalışma zamanı için tekrar yayınlayın, örneğin win-x64.
  3. Güncellenmiş derlemeyi tekrar dağıtın.
  4. IIS sitesi yeniden başlatın veya Uygulama Havuzunu geri dönüştürün.
  5. 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.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 20,296,129 | Sürüm: 2026.7 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.