Azure Linux App Service 的部署疑難排解
當部署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:識別缺失的依賴項
- 從Visual Studio正常部署應用程式服務。
- 打開您的Azure Linux App Service 的SSH控制台。
- 瀏覽到wwwroot目錄:
cd /home/site/wwwroot
- 針對本機二進位檔案運行
ldd以列出未解決的依賴項:
ldd IronInterop.so
- 檢查作業系統版本以確認適用的套件名稱:
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部署指南。

