AWS Lambda 上的分段故障

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

当在 Linux 容器中使用 AWS Lambda 并多次并发调用渲染方法时,有时会导致以下异常。

异常:
错误:运行时因错误退出:信号:分段错误 Runtime.ExitError
Text

解决方案

解决方案是PDF文档渲染后调用GC.Collect方法。 该问题已在最近的IronPDF版本中于Amazon Linux 2023上报告; 早期使用.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 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

阅读更多

准备开始了吗?

Nuget Downloads 21,916,531版本:2026.11刚刚发布