Problembehebung bei der Bereitstellung für Azure Linux App Service
Beim Bereitstellen von IronPDF auf einem Azure Linux App Service kann es sein, dass die Anwendung aufgrund fehlender Systembibliotheken keine PDFs rendert. Dies liegt daran, dass Linux-Umgebungen mit weniger vorinstallierten Paketen als Windows geliefert werden und die IronPDF-Rendering-Engine zusätzliche gemeinsame Bibliotheken benötigt, um zu funktionieren.
Multiple issues occurred while trying to deploy Chrome (libatk-1.0.so.0: cannot open shared object file: No such file or directory) (IronInterop.so: cannot open shared object file: No such file or directory) (Read-only file system: '/home/site/wwwroot/runtimes')
Der Fehler bedeutet, dass eine oder mehrere gemeinsame Bibliotheken, die von IronInterop.so benötigt werden, in der Linux-Umgebung fehlen. Die Ausführung von ldd IronInterop.so aus der SSH-Konsole im App Service identifiziert genau, welche Bibliotheken fehlen. Die Meldung über das schreibgeschützte Dateisystem im Runtimes-Ordner ist ein separates Symptom derselben Fehlender-Abhängigkeit-Bedingung.
Lösung
Schritt 1: Fehlende Abhängigkeiten identifizieren
- Stellen Sie den App Service wie gewohnt aus Visual Studio bereit.
- Öffnen Sie die SSH-Konsole für Ihren Azure Linux App Service.
- Navigieren Sie zum Verzeichnis wwwroot:
cd /home/site/wwwroot
- Führen Sie
lddgegen die native Binärdatei aus, um nicht behobene Abhängigkeiten aufzulisten:
ldd IronInterop.so
- Überprüfen Sie die Betriebssystemversion, um zu bestätigen, welche Paketnamen zutreffen:
cat /etc/os-release
Schritt 2: Fehlende Bibliotheken installieren
Für die meisten Linux-Distributionen (Debian/Ubuntu-basierte Images) installieren Sie die erforderlichen Pakete mit:
apt-get update && apt-get install -y libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libxkbcommon0 libasound2 libatspi2.0-0
Für Ubuntu 24.04 Images (verwendet mit .NET 10) verwenden Sie stattdessen die folgende Dockerfile-Anweisung, da sich einige Paketnamen geändert haben:
RUN apt update \
&& apt install -y sudo libxkbcommon-x11-0 libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2t64 libxrender1 libfontconfig1 libxshmfence1 libgdiplus libva-dev
Schritt 3: Überprüfen Sie, ob alle Abhängigkeiten behoben sind
Führen Sie ldd erneut aus, um zu bestätigen, dass keine nicht behobenen Einträge mehr vorhanden sind:
ldd IronInterop.so
Alle Einträge sollten einen behobenen Pfad anzeigen und nicht not found. Sobald alle Abhängigkeiten vorhanden sind, wird das Rendern von PDFs über die Webanwendung normal funktionieren. Für die vollständige Liste der erforderlichen Pakete über verschiedene Linux-Distributionen hinweg, siehe den Linux-Bereitstellungsleitfaden.

