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

对于Ubuntu 24.04映像(与.NET 10一起使用),请改为使用以下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。 一旦所有依赖项就位,通过Web应用程序的PDF渲染将正常工作。 有关各Linux发行版所需包的完整列表,请参阅Linux部署指南

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 20,088,359 | 版本: 2026.7 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPdf
运行示例看着你的HTML代码变成PDF文件。