在Azure Linux上的IronPDF與WEBSITE_RUN_FROM_PACKAGE
當在啟用WEBSITE_RUN_FROM_PACKAGE的Azure Linux App Service上部署使用IronPDF的.NET API時,Chrome渲染器無法部署,應用程式在啟動時拋出錯誤。
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')'
當/home/site/wwwroot目錄變為只讀。 IronPDF需要在啟動時將原生Chrome渲染器二進制檔和運行時程式庫解壓到可寫位置,因此只讀限制阻止了部署。 此外,Azure的預設Linux環境可能沒有預先安裝所需的系統程式庫,這會導致缺少共享物件錯誤。
解決方案
根據您的部署限制,有三個選項可供選擇。
選項1:通過SSH安裝缺少的依賴項
通過SSH存取App Service並運行以下命令以安裝所需的系統程式庫:
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
這是一個臨時修正。 以這種方式安裝的套件不會在重啟後保留,不適用於具有出站防火牆限制的生產環境。 有關按Linux發行版所需的完整套件列表,請參閱Linux部署指南。
選項2:使用自訂Docker容器(推薦用於Linux)
基於Ubuntu或Debian建構自訂Docker映像,使用IronPdf.Native.Chrome.Linux NuGet套件。此方法在映像構建時為渲染器提供了可寫文件系統和預裝的依賴項。
將相應的NuGet套件新增到您的.csproj:
<PackageReference Include="IronPdf" Version="*" />
<PackageReference Include="IronPdf.Native.Chrome.Linux" Version="*" />
<PackageReference Include="IronPdf" Version="*" />
<PackageReference Include="IronPdf.Native.Chrome.Linux" Version="*" />
確保IronPdf套件版本匹配。 在專案中包含原生套件可防止IronPDF嘗試進行運行時下載,因其會在只讀或網路有限制的環境中失敗。
查看IronPDF Docker指南以獲取完整的Dockerfile範例。
選項3:遷移到Windows App Service
Windows App Services沒有相同的WEBSITE_RUN_FROM_PACKAGE文件系統權限限制。 IronPDF的Windows運行時程式庫本來就支持,並且可以無問題地提取。 遷移到Windows App Service完全消除根本原因。

