Rozwiązywanie problemów z wdrażaniem w usłudze Azure Linux App Service

Curtis Chau
Curtis Chau
Updated: 10 czerwca 2026

Podczas wdrażania IronPDF w usłudze Azure Linux App Service aplikacja może nie być w stanie renderować dokumentów PDF z powodu brakujących bibliotek systemowych. Dzieje się tak, ponieważ środowiska Linux mają mniej zainstalowanych domyślnie pakietów niż Windows, a silnik renderujący IronPDF wymaga dodatkowych bibliotek współdzielonych do działania.

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')
Text

Błąd oznacza, że jedna lub więcej bibliotek współdzielonych wymaganych przez IronInterop.so jest nieobecna w środowisku Linux. Uruchomienie ldd IronInterop.so z konsoli SSH na usłudze aplikacji pozwala dokładnie zidentyfikować, które biblioteki są brakujące. Komunikat o systemie plików tylko do odczytu dla folderu environments to oddzielny objaw tego samego stanu brakujących zależności.

Rozwiązanie

Krok 1: Identyfikacja brakujących zależności

  1. Wdróż usługę aplikacji z poziomu Visual Studio jak zwykle.
  2. Otwórz konsolę SSH dla swojej usługi Azure Linux App Service.
  3. Przejdź do katalogu wwwroot:
cd /home/site/wwwroot
Text
  1. Uruchom ldd na binarce natywnej, aby wymienić nierozwiązane zależności:
ldd IronInterop.so
Text
  1. Sprawdź wersję systemu operacyjnego, aby potwierdzić, które nazwy pakietów mają zastosowanie:
cat /etc/os-release
Text

Krok 2: Instalacja brakujących bibliotek

Dla większości dystrybucji Linux (obrazów opartych na Debian/Ubuntu), zainstaluj wymagane pakiety używając:

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
Text

Dla obrazów Ubuntu 24.04 (używanych z .NET 10), użyj poniższej instrukcji Dockerfile, ponieważ niektóre nazwy pakietów uległy zmianie:

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
Dockerfile

Krok 3: Weryfikacja rozwiązania wszystkich zależności

Uruchom ponownie ldd, aby potwierdzić, że nie ma już nierozwiązanych wpisów:

ldd IronInterop.so
Text

Wszystkie wpisy powinny pokazywać rozwiązana ścieżkę zamiast not found. Kiedy wszystkie zależności są na miejscu, renderowanie PDF przez aplikację webową będzie działać normalnie. Dla pełnej listy wymaganych pakietów w różnych dystrybucjach Linux zobacz przewodnik wdrażania dla Linux.

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 21,739,885Wersja:2026.10właśnie wydany