.NET 9および.NET 10でスレッド状態破壊後の管理コード

This article was translated from English: Does it need improvement?
Translated
View the article in English

.NET 9.0.5以降(.NET 10を含む)では、IronPDFを使用するアプリケーションが致命的なアサーションエラーと終了コード127で終了します。

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

Microsoftは.NET 9.0.5でより厳格なFLS(ファイバーローカルストレージ)スレッドクリーンアップを導入しました。OSはFLSコールバック実行の順序を制御しますが、これはIronPDFのChromeレンダラーが終了シーケンスを完了する前にCLRのクリーンアップを引き起こす可能性があります。 この問題はWindows固有です。 LinuxおよびmacOSは影響を受けません。 .NET 6、7、8は正常に終了します。 IronPDFのPDF生成はアサーションが発生する前に正常に完了します。 Microsoftはこれを"未来"として登録しており、計画された修正予定日はありません。

オプション

オプション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'
- script: dotnet test --logger "trx" || true
- task: PublishTestResults@2
  inputs:
    testResultsFiles: '**/*.trx'
YAML

GitHub Actions:

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

オプション3:シェルで出口コードをフィルター

dotnet run 2>stderr.log; EXIT=$?
if grep -q "thread state has been destroyed" stderr.log; then exit 0; else exit $EXIT; fi
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に精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 20,088,359 | バージョン: 2026.7 リリースされたばかり
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronPdf
サンプルを実行するHTML が PDF に変換されるのを確認します。