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日志可用之前,因此在崩溃之前不会写入日志。
此问题仅在部署环境中出现,通常是针对win-x64的Windows(包括Windows Server)上托管的ASP.NET Core或IIS应用程序中出现。 同一台机器在IIS内部和外部的行为可能不同。 一个已确认的生产案例在AWS EC2的Windows Server 2025 Datacenter上运行IronPDF 2026.4.1,一个在IIS (w3wp.exe)下的ASP.NET Core Web应用程序,使用.NET 10。
解决方案
1. 保持启用ReadyToRun
没有必要完全禁用ReadyToRun。 如果您的应用程序依赖于此,请保留该属性:
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
2. 将IronPdf.dll排除在ReadyToRun编译之外
在您的.csproj中添加排除项:
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
这条单行恢复了正常行为:它让应用程序的其余部分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代码路径。
在确认的生产案例中,将System.Environment.FailFast崩溃,应用程序在IIS下正常运行。
何时尝试此修复
当症状对齐时,请尝试使用此修复:
PublishReadyToRun=true: 已在发布的应用程序上启用了ReadyToRun。- 首次调用崩溃:故障发生在首次触碰IronPDF类时。
- 启动时机:错误在启动或早期静态初始化期间出现。
- 已部署的Windows主机:应用程序运行在IIS或另一个已部署的Windows环境下。
有关完整指导,请参见与IronPDF一起使用ReadyToRun。

