Azure Linux üzerinde IronPDF ve WEBSITE_RUN_FROM_PACKAGE

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

.NET API'yi Azure Linux App Service üzerinde WEBSITE_RUN_FROM_PACKAGE etkinleştirilmiş şekilde IronPDF kullanarak dağıttığınızda, Chrome render aygıtı dağıtımı başarısız oluyor ve uygulama başlangıçta bir hata oluşturuyor.

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

WEBSITE_RUN_FROM_PACKAGE ayarlandığında, /home/site/wwwroot dizini salt okunur hale gelir. IronPDF, başlangıçta yerel Chrome render aygıtı ikili dosyalarını ve çalışma zamanı kütüphanelerini yazılabilir bir konuma çıkarması gerektiği için salt okunur kısıtlaması dağıtımı engeller. Ayrıca, Azure'un varsayılan Linux ortamı gerekli sistem kütüphanelerine önceden sahip olmayabilir, bu da eksik paylaşılan nesne hatalarına neden olur.

Çözüm

Dağıtım sınırlamalarınıza bağlı olarak üç seçenek mevcuttur.

Seçenek 1: Eksik Bağımlılıkları SSH ile Yükleyin

Uygulama Hizmeti'ne SSH ile erişin ve gerekli sistem kütüphanelerini yüklemek için aşağıdaki komutları çalıştırın:

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

Bu geçici bir çözümdür. Bu şekilde yüklenen paketler yeniden başlatmalar arasında kalmaz ve dışa yönelik güvenlik duvarı kısıtlamaları olan üretim ortamları için uygun değildir. Linux dağıtımına göre gereken paketlerin tam listesi için Linux dağıtım kılavuzuna bakın.

Seçenek 2: Özel Docker Container Kullanımı (Linux için Önerilir)

Ubuntu veya Debian tabanlı özel bir Docker imajı oluşturun, gerekli sistem paketlerini apt ile yükleyin ve proje dosyanıza IronPdf ve IronPdf.Native.Chrome.Linux NuGet paketlerini ekleyin. Bu yaklaşım, render aygıtına yazılabilir bir dosya sistemi ve imaj oluşturma zamanında önceden yüklenmiş bağımlılıklar sağlar.

Uygulamanıza uygun NuGet paketlerini .csproj ekleyin:

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

IronPdf.Native.Chrome.Linux sürümünün, IronPdf paket sürümünüzle eşleştiğinden emin olun. Projeye yerli paketin dahil edilmesi, IronPDF'nin bir çalışma zamanı indirmesi yapmasını engeller, bu da salt okunur veya ağ kısıtlamalı bir ortamda başarısız olurdu.

Tam bir Dockerfile örneği için IronPDF Docker rehberine bakın.

Seçenek 3: Bir Windows Uygulama Hizmetine Taşıma

Windows Uygulama Hizmetleri, WEBSITE_RUN_FROM_PACKAGE için aynı dosya sistemi izin kısıtlamalarına sahip değildir. IronPDF'nin Windows çalışma zamanı kütüphaneleri yerel olarak desteklenir ve herhangi bir sorun olmadan çıkarılabilir. Bir Windows Uygulama Hizmetine geçiş, temel nedeni tamamen ortadan kaldırır.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 20,088,359 | Sürüm: 2026.7 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.