Azure Linux App Service 的部署疑難排解

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

當部署IronPDF到Azure Linux App Service 時,由於缺少系統程式庫,應用程式可能無法呈現PDF。 這是因為Linux環境預裝的套件比Windows少,而IronPDF渲染引擎需要額外的共享程式庫才能運行。

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

錯誤表示Linux環境中缺少IronInterop.so所需的一個或多個共享程式庫。 在應用程式服務上從SSH控制台運行ldd IronInterop.so可以精確識別缺少哪些程式庫。 只讀文件系統關於運行時資料夾的訊息是同一個缺失依賴項條件的不同症狀。

解決方案

步驟1:識別缺失的依賴項

  1. 從Visual Studio正常部署應用程式服務。
  2. 打開您的Azure Linux App Service 的SSH控制台。
  3. 瀏覽到wwwroot目錄:
cd /home/site/wwwroot
  1. 針對本機二進位檔案運行ldd以列出未解決的依賴項:
ldd IronInterop.so
  1. 檢查作業系統版本以確認適用的套件名稱:
cat /etc/os-release

步驟2:安裝缺失的程式庫

對於大多數Linux發行版(Debian/Ubuntu基礎的映像),使用以下命令安裝所需的套件:

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

對於使用.NET 10的Ubuntu 24.04映像,由於某些套件名稱已更改,請使用以下Dockerfile指令:

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

步驟3:確認所有依賴項已解決

再次運行ldd以確認沒有未解決的項目:

ldd IronInterop.so

所有項目應顯示已解決的路徑而不是not found。 一旦所有的依賴項就位,通過網路應用程式的PDF渲染將正常工作。 有關Linux發行版所需套件的完整列表,請參閱Linux部署指南

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。