在AWS Lambda上的分段錯誤

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

在Linux容器中使用AWS Lambda並多次同時調用render方法時,有時會導致以下異常。

異常:
錯誤:運行時退出時出現錯誤:信號:分段故障 Runtime.ExitError
Text

解決方案

解決方案是在PDF文件渲染後調用GC.Collect方法。 已在Amazon Linux 2023上通報此問題,並使用最近的IronPDF版本; 使用.NET 6和Amazon Linux 2的先前部署不受影響。

// Create an instance of ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render the HTML string to a PDF document
PdfDocument document = renderer.RenderHtmlAsPdf(htmlString);

// Explicitly trigger garbage collection to help manage memory usage
GC.Collect();

多進程渲染和wstring_convert::from_bytes錯誤

如果ChromePdfRenderer。 這會產生分段錯誤或C++異常:

Process runtime-1 exited: signal: segmentation fault
Error while generating PDF from HTML: 'wstring_convert::from_bytes'
Text

這些錯誤是間歇性的,可能僅在第一次或第二次Lambda容器調用後出現。

解決方案

設定ChromePdfRenderer:

IronPdf.Installation.SingleProcess = true;
IronPdf.Installation.TempFolderPath = "/tmp";

var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync(htmlString);

不要調用ChromePdfRenderer保持為靜態或欄位級實例。 持久化渲染器會將陳舊的記憶體狀態帶入後續的Lambda調用中並導致崩潰。

// Avoid: global renderer reuse
private readonly ChromePdfRenderer _renderer = new();

// Avoid: calling Initialize()
Installation.Initialize();

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

閱讀更多

準備開始了嗎?

Nuget Downloads 21,916,531版本:2026.11剛剛發布