IRONSOFTWAREHOME

在.NET 9和.NET 10上线程状态销毁后托管代码

Curtis Chau
Curtis Chau
Updated: 2026年6月10日

在.NET 9.0.5及更高版本(包括.NET 10)上使用IronPDF的应用程序退出并显示致命断言错误和退出代码127。

Attempt to execute managed code after the .NET runtime thread state has been destroyed.
Text

微软在.NET 9.0.5中引入了更严格的FLS(纤维局部存储)线程清理。操作系统控制FLS回调执行的顺序,这可能在IronPDF的Chrome渲染器完成其自身的关闭序列之前触发CLR拆卸。 此问题是Windows特有的; Linux和macOS不受影响。 .NET 6、7和8正常退出。 IronPDF的PDF生成在断言触发之前成功完成。 微软将该问题标记为"将来",没有计划修复日期。

选项

选项1:降级到.NET 8(推荐)

.NET 6.0.36和.NET 8.0.26正常退出。 如果需要干净的进程退出,请降级目标框架。

选项2:在CI/CD中使用测试结果文件而不是退出代码

在断言触发之前PDF工作成功完成。 从结果文件发布测试结果而不是依赖退出代码:

Azure DevOps:

- script: dotnet test --logger "trx" || true
- task: PublishTestResults@2
  inputs:
    testResultsFiles: '**/*.trx'
Text

GitHub Actions:

- run: dotnet test --logger "trx" || true
- uses: dorny/test-reporter@v1
  with:
    path: '**/*.trx'
    reporter: dotnet-trx
Text

选项3:在shell中过滤退出代码

dotnet run 2>stderr.log; EXIT=$?
if grep -q "thread state has been destroyed" stderr.log; then exit 0; else exit $EXIT; fi
SHELL

已知不可行的缓解措施:Environment.Exit(0),以及在退出前手动进行GC收集。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

准备开始了吗?

Nuget Downloads 20,878,335版本:2026.9刚刚发布

立即获取您的免费30 天试用密钥
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户