在Azure Linux上的IronPDF與WEBSITE_RUN_FROM_PACKAGE

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

當在啟用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
SHELL

這是一個臨時修正。 以這種方式安裝的套件不會在重啟後保留,不適用於具有出站防火牆限制的生產環境。 有關按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="*" />
XML

確保IronPdf套件版本匹配。 在專案中包含原生套件可防止IronPDF嘗試進行運行時下載,因其會在只讀或網路有限制的環境中失敗。

查看IronPDF Docker指南以獲取完整的Dockerfile範例。

選項3:遷移到Windows App Service

Windows App Services沒有相同的WEBSITE_RUN_FROM_PACKAGE文件系統權限限制。 IronPDF的Windows運行時程式庫本來就支持,並且可以無問題地提取。 遷移到Windows App Service完全消除根本原因。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備開始了嗎?
Nuget 下載 20,088,359 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想快速獲得證明嗎? PM > Install-Package IronPdf
執行範例 看您的HTML變成PDF。