Verwaiste CEF-Prozesse auf macOS ARM
Auf macOS ARM kann IronPDF 2026.4.1 seinen Chromium Embedded Framework (CEF)-Subprozess weiterlaufen lassen, nachdem Ihre Anwendung abgestürzt ist. Der Prozess scheint zu hängen und beendet sich nie.
IronSoftwareDeploymentConfigurationMissingException: QPdf*.deployment.json
Die betroffene Konfiguration ist IronPdf.MacOs.ARM 2026.4.1 (native Interop 2026.4.0.1) auf macOS ARM64 mit .NET 10. Bei diesem Build wird der CEF-Subprozess nicht abgebaut, wenn die Host-Anwendung abnormal beendet wird, sodass IronCefSubprocess und seine Chrome-gpu-process-Kindprozesse aktiv bleiben. Ein Update auf 2026.5.2 behebt dieses Verhalten.
Lösung
1. Aktualisieren Sie die IronPDF-Pakete
Verschieben Sie IronPdf.MacOs.ARM zu 2026.5.2 oder später. Mit dem .NET CLI:
dotnet add package IronPdf.MacOs.ARM --version 2026.5.2
dotnet add package IronPdf.MacOs.ARM --version 2026.5.2
Oder von der Visual Studio-Paket-Manager-Konsole aus:
Update-Package IronPdf.MacOs.ARM
Update-Package IronPdf.MacOs.ARM
2. Neu erstellen und ausführen
Erstellen Sie das Projekt neu und führen Sie Ihre Anwendung erneut aus, um das aktualisierte native Interop zu laden.
3. Bestätigen Sie, dass keine Prozesse verbleiben
Nach dem Beenden oder Absturz der Anwendung prüfen Sie auf übriggebliebene Renderer-Prozesse:
ps aux | grep -iE "ironpdf|ironcef|chrome"
ps aux | grep -iE "ironpdf|ironcef|chrome"
Sie sollten keine übriggebliebenen IronPDF-, IronCefSubprocess- oder Chrome-gpu-process-Einträge sehen.
Debug-Tipps
In der betroffenen Version wurde das folgende Problem nicht gelöst:
- Einstellung
Installation.TempFolderPath: keine Auswirkung auf das Hängen. - Aufruf von
IronPdf.IronPdfEngine.Shutdown(): derIronPdfEngine-Typ ist nicht Teil desIronPdf.MacOs.ARM-Pakets, daher lässt sich dieser Aufruf nicht dagegen kompilieren. - *Die
IronSoftwareDeploymentConfigurationMissingException-Warnung über `QPdf.deployment.json`:** nicht blockierend. qpdf wird weiterhin bereitgestellt und geladen, und die Warnung steht nicht im Zusammenhang mit dem hängenden Prozess.
Logger.LoggingMode = Logger.LoggingModes.File und teilen Sie das Protokoll mit dem Support.

