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(Fiber Local Storage)執行緒清理。操作系統控制 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

已知無效的緩解措施:Installation.SkipShutdown = true, SetErrorMode, Environment.Exit(0),以及退出前的手動垃圾收集。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

準備開始了嗎?

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天試用金鑰
無需信用卡或帳戶建立