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
对于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部署指南。

