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のログ記録が利用可能になる前であることが多く、クラッシュ前にログが書き込まれない理由です。
この問題は、展開された環境でのみ発生し、通常は ASP.NET Core または win-x64 をターゲットとした Windows (Windows Server を含む) でホストされている IIS アプリで発生します。 同じマシンがIIS内と外では異なる動作をすることがあります。 確認された本番ケースでは、IronPDF 2026.4.1 を .NET 10、IIS で動作する ASP.NET Core Web アプリで、AWS EC2 上の Windows Server 2025 Datacenter で実行しました。
解決策
1. ReadyToRunを有効に保つ
ReadyToRunを完全に無効にする必要はありません。 アプリケーションがそれに依存している場合、プロパティをそのままにしておきます。
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
2. ReadyToRun コンパイルから IronPdf.dll を除外します
除外をあなたの .csproj に追加してください:
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
この1行だけで通常の動作を回復します:アプリケーションの他の部分は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コードパスを再テストします。
確認された本番ケースでは、ReadyToRun コンパイルから IronPdf.dll を除外することで、System.Environment.FailFast クラッシュが解消され、IIS の下で通常通りアプリが動作しました。
この修正を試すべきとき
症状が一致するときに試してください:
PublishReadyToRun=true: 公開されたアプリで ReadyToRun が有効になっています。- 初回呼び出しでクラッシュ:IronPDFクラスに触れた瞬間に失敗が発生します。
- スタートアップタイミング:エラーは起動中または初期の静的初期化中に発生します。
- デプロイ済みのWindowsホスト:アプリはIISまたは他のデプロイ済みWindows環境下で動作しています。
完全なガイダンスはIronPDFとReadyToRunの使用を参照してください。

