IRONSOFTWAREHOME

System.Environment.FailFast with ReadyToRun

Curtis Chau
Curtis Chau
Updated: 29 czerwca 2026

Aplikacja .NET ulega awarii w momencie, gdy po raz pierwszy dotyka klasy IronPDF, kończąc działanie przez System.Environment.FailFast przy uruchamianiu lub we wczesnej fazie inicjalizacji. Gdy aplikacja jest publikowana z kompilacją ReadyToRun (R2R), to kroki podejmowane z wyprzedzeniem zwykle są przyczyną. Pozostawiasz ReadyToRun dla aplikacji i wykluczasz z niego 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[])
Text

ReadyToRun kompiluje zestawy z wyprzedzeniem, aby przyspieszyć start. W niektórych środowiskach ten krok z wyprzedzeniem zakłóca działania bibliotek, które polegają na zachowaniu inicjalizacji w czasie wykonania, w tym IronPDF. Proces może się nie udać bardzo wcześnie, często zanim jakiekolwiek logi IronPDF są dostępne, dlatego przed awarią nie są zapisywane żadne logi.

Ten problem pojawia się tylko w wdrożonym środowisku, zazwyczaj w aplikacjach ASP.NET Core lub hostowanych na IIS na Windows (w tym Windows Server) celujących w win-x64. Ta sama maszyna może zachowywać się różnie wewnątrz IIS niż na zewnątrz. Potwierdzony przypadek produkcyjny uruchomił IronPDF 2026.4.1 na .NET 10, w aplikacji webowej ASP.NET Core pod IIS (w3wp.exe) na Windows Server 2025 Datacenter na AWS EC2.

Rozwiązanie

1. Zachowaj włączone ReadyToRun

Nie ma potrzeby całkowitego wyłączania ReadyToRun. Jeśli twoja aplikacja na nim polega, pozostaw właściwość w miejscu:

<PropertyGroup>
  <PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
XML

2. Wyklucz IronPdf.dll z kompilacji ReadyToRun

Dodaj wykluczenie do swojego .csproj:

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

Ta pojedyncza linia przywraca normalne zachowanie: pozostawia resztę aplikacji z kompilacją R2R, a jednocześnie pozwala na inicjalizację IronPDF w czasie wykonywania, jak się spodziewa.

Uwaga: Użyj dokładnie przedstawionej składni. Nie zamykaj wykluczenia w innej bloku kontenera <PublishReadyToRunExclude>.

3. Pełny przykład .csproj

Plik projektu wygląda w ten sposób:

<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. Opublikuj i wdroż ponownie

Po zaktualizowaniu pliku projektu, wykonaj nową kompilację:

  1. Przebuduj aplikację.
  2. Ponownie opublikuj ją dla zamierzonego środowiska wykonawczego, na przykład win-x64.
  3. Wdróż zaktualizowaną kompilację.
  4. Uruchom ponownie witrynę IIS lub zresetuj pulę aplikacji.
  5. Przetestuj ponownie ten sam kod IronPDF.

W potwierdzonym przypadku produkcyjnym, wykluczenie IronPdf.dll z kompilacji ReadyToRun wyeliminowało awarię System.Environment.FailFast i aplikacja działała normalnie pod IIS.

Kiedy wypróbować tę poprawkę

Sięgnij po to, gdy objawy się zgadzają:

  • PublishReadyToRun=true: ReadyToRun jest włączone w opublikowanej aplikacji.
  • Awaria przy pierwszym wywołaniu: awaria występuje w momencie, gdy dotknięty zostanie klasa IronPDF.
  • Timing uruchamiania: błąd pojawia się podczas uruchamiania lub wczesnej statycznej inicjalizacji.
  • Wdrożone hosty Windows: aplikacja działa pod IIS lub innym wdrożonym środowiskiem Windows.

Dla pełnego przewodnika, zobacz Korzystanie z ReadyToRun z IronPDF.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 21,105,021Wersja:2026.9właśnie wydany

Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz opcję Przeglądaj i wyszukaj „IronPdf”
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.9

lub pobierz instalator Windows tutaj.

  1. Pobierz i rozpakuj IronPDF do lokalizacji takiej jak ~/Libs w katalogu Solution
  2. W Eksploratorze rozwiązań programu Visual Studio kliknij prawym przyciskiem myszy opcję Odwołania. Wybierz opcję Przeglądaj, „IronPdf.dll”

Licencje od 749 USD

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

OR
bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz opcję Przeglądaj i wyszukaj „IronPdf”
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.9

lub pobierz instalator Windows tutaj.

  1. Pobierz i rozpakuj IronPDF do lokalizacji takiej jak ~/Libs w katalogu Solution
  2. W Eksploratorze rozwiązań programu Visual Studio kliknij prawym przyciskiem myszy opcję Odwołania. Wybierz opcję Przeglądaj, „IronPdf.dll”

Licencje od 749 USD