Solución de Problemas de Despliegue para Azure Linux App Service
Al desplegar IronPDF en un Azure Linux App Service, la aplicación puede fallar al renderizar PDFs debido a bibliotecas del sistema faltantes. Esto ocurre porque los entornos Linux vienen con menos paquetes preinstalados que Windows, y el motor de renderizado de IronPDF requiere bibliotecas compartidas adicionales para operar.
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')
El error significa que una o más bibliotecas compartidas requeridas por IronInterop.so están ausentes en el entorno Linux. Ejecutar ldd IronInterop.so desde la consola SSH en el servicio de la aplicación identifica exactamente qué bibliotecas faltan. El mensaje del sistema de archivos de solo lectura para la carpeta de runtimes es un síntoma separado de la misma condición de dependencia faltante.
Solución
Paso 1: Identificar dependencias faltantes
- Despliegue el servicio de la aplicación desde Visual Studio como de costumbre.
- Abra la consola SSH para su Azure Linux App Service.
- Navegue al directorio wwwroot:
cd /home/site/wwwroot
- Ejecute
lddcontra el binario nativo para listar las dependencias no resueltas:
ldd IronInterop.so
- Verifique la versión del SO para confirmar qué nombres de paquetes aplican:
cat /etc/os-release
Paso 2: Instalar bibliotecas faltantes
Para la mayoría de las distribuciones de Linux (imágenes basadas en Debian/Ubuntu), instale los paquetes requeridos con:
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
Para las imágenes de Ubuntu 24.04 (utilizadas con .NET 10), use la siguiente instrucción de Dockerfile en su lugar, ya que algunos nombres de paquetes han cambiado:
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
Paso 3: Verificar que todas las dependencias estén resueltas
Ejecute ldd nuevamente para confirmar que no hay entradas no resueltas restantes:
ldd IronInterop.so
Todas las entradas deben mostrar una ruta resuelta en lugar de not found. Una vez que todas las dependencias estén en su lugar, la renderización de PDF a través de la aplicación web funcionará normalmente. Para la lista completa de paquetes requeridos en distribuciones de Linux, consulte la guía de despliegue de Linux.

