# System.Environment.FailFast with ReadyToRun
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`.
```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 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:
```xml
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
```
### 2. Wyklucz `IronPdf.dll` z kompilacji ReadyToRun
Dodaj wykluczenie do swojego `.csproj`:
```xml
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
```
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.
[[e:(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:
```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. 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](/troubleshooting/use-readytorun/).
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[])
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:
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>.
Po zaktualizowaniu pliku projektu, wykonaj nową kompilację:
Przebuduj aplikację.
Ponownie opublikuj ją dla zamierzonego środowiska wykonawczego, na przykład win-x64.
Wdróż zaktualizowaną kompilację.
Uruchom ponownie witrynę IIS lub zresetuj pulę aplikacji.
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.
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.