Défaillance de segmentation sur AWS Lambda
Lors de l'utilisation d'AWS Lambda dans un conteneur Linux et de l'appel de la méthode de rendu de manière concurrente à plusieurs reprises, cela entraîne parfois l'exception suivante.
Exception :
Erreur : L'exécution s'est arrêtée avec l'erreur : signal : défaut de segmentation Runtime.ExitError
Solutions
La solution consiste à appeler la méthode GC.Collect
après le rendu du document PDF. Nous n'avons rencontré ce problème sur aucune autre plateforme cloud. Cela a commencé à se produire seulement dans la version récente ; l'ancienne avec .NET 6 utilisant Amazon Linux 2 fonctionne toujours.
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument document = renderer.RenderHtmlAsPdf(htmlString);
GC.Collect();
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument document = renderer.RenderHtmlAsPdf(htmlString);
GC.Collect();
Dim renderer As New ChromePdfRenderer()
Dim document As PdfDocument = renderer.RenderHtmlAsPdf(htmlString)
GC.Collect()