IronPDF on Azure Linux with WEBSITE_RUN_FROM_PACKAGE

This article was translated from English: Does it need improvement?
Translated
View the article in English

Podczas wdrażania API .NET używającego IronPDF na Azure Linux App Service z włączoną opcją WEBSITE_RUN_FROM_PACKAGE, renderer Chrome nie udaje się wdrożyć i aplikacja wyrzuca błąd przy starcie.

Error while deploying IronPdf Chrome renderer: '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')'

Gdy ustawiony jest WEBSITE_RUN_FROM_PACKAGE, katalog /home/site/wwwroot staje się tylko do odczytu. IronPDF musi wyodrębnić natywne pliki binarne renderera Chrome i biblioteki uruchomieniowe do zapisywalnej lokalizacji podczas startu, więc ograniczenie do odczytu blokuje wdrożenie. Ponadto w domyślnym środowisku Linux na Azure mogą brakować wymagane biblioteki systemowe zainstalowane wcześniej, co powoduje błędy brakujących obiektów współdzielonych.

Rozwiązanie

Dostępne są trzy opcje w zależności od ograniczeń wdrożenia.

Opcja 1: Zainstaluj brakujące zależności przez SSH

Uzyskaj dostęp do App Service za pomocą SSH i uruchom następujące polecenia, aby zainstalować wymagane biblioteki systemowe:

apt update
apt install -y libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 \
  libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 \
  libxkbcommon-x11-0 libxrender1 libfontconfig1 libxshmfence1
apt update
apt install -y libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 \
  libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 \
  libxkbcommon-x11-0 libxrender1 libfontconfig1 libxshmfence1
SHELL

To jest tymczasowe rozwiązanie. Pakiety zainstalowane w ten sposób nie przetrwają ponownego uruchomienia i nie są odpowiednie dla środowisk produkcyjnych z ograniczeniami zapory wychodzącej. Pełną listę wymaganych pakietów według dystrybucji Linux można znaleźć w przewodniku wdrażania na Linux.

Opcja 2: Użyj niestandardowego kontenera Docker (Zalecane dla Linux)

Zbuduj niestandardowy obraz Docker oparty na Ubuntu lub Debian, zainstaluj wymagane pakiety systemowe z pomocą apt, i dołącz pakiety NuGet IronPdf i IronPdf.Native.Chrome.Linux w pliku projektu. To podejście daje rendererowi zapisywalny system plików i zainstalowane zależności w momencie budowy obrazu.

Dodaj pasujące pakiety NuGet do swojego .csproj:

<PackageReference Include="IronPdf" Version="*" />
<PackageReference Include="IronPdf.Native.Chrome.Linux" Version="*" />
<PackageReference Include="IronPdf" Version="*" />
<PackageReference Include="IronPdf.Native.Chrome.Linux" Version="*" />
XML

Upewnij się, że wersja IronPdf.Native.Chrome.Linux pasuje do wersji pakietu IronPdf. Zawieranie natywnego pakietu w projekcie zapobiega próbie pobrania go przez IronPDF podczas uruchamiania, co by się nie udało w środowisku tylko do odczytu lub z ograniczonym dostępem do sieci.

Zobacz przewodnik IronPDF Docker dla pełnego przykładu Dockerfile.

Opcja 3: Migruj do Windows App Service

Usługi Windows App Service nie mają tych samych ograniczeń uprawnienia do systemu plików dla WEBSITE_RUN_FROM_PACKAGE. Biblioteki uruchomieniowe Windows dla IronPDF są natywnie obsługiwane i mogą być wydobyte bez problemu. Migracja do Windows App Service całkowicie usuwa przyczynę problemu.

Curtis Chau
Autor tekstów technicznych

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ę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 20,088,359 | Wersja: 2026.7 właśnie wydany
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.