Solução de problemas de implantação para o Azure Linux App Service
Ao implantar o IronPDF em um Azure Linux App Service, o aplicativo pode falhar ao renderizar PDFs devido a bibliotecas de sistema ausentes. Isso ocorre porque os ambientes Linux vêm com menos pacotes pré-instalados do que o Windows, e o mecanismo de renderização do IronPDF requer bibliotecas compartilhadas adicionais 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')
O erro significa que uma ou mais bibliotecas compartilhadas necessárias pelo IronInterop.so estão ausentes do ambiente Linux. Executar ldd IronInterop.so do console SSH no serviço de aplicativo identifica exatamente quais bibliotecas estão ausentes. A mensagem de sistema de arquivos somente leitura para a pasta de tempos de execução é um sintoma separado da mesma condição de dependência ausente.
Solução
Passo 1: Identificar dependências ausentes
- Implante o serviço de aplicativo do Visual Studio normalmente.
- Abra o console SSH para o seu Azure Linux App Service.
- Navegue até o diretório wwwroot:
cd /home/site/wwwroot
- Execute
lddcontra o binário nativo para listar dependências não resolvidas:
ldd IronInterop.so
- Verifique a versão do sistema operacional para confirmar quais nomes de pacotes se aplicam:
cat /etc/os-release
Passo 2: Instalar bibliotecas ausentes
Para a maioria das distribuições Linux (imagens baseadas em Debian/Ubuntu), instale os pacotes necessários com:
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 imagens do Ubuntu 24.04 (usadas com .NET 10), use a seguinte instrução do Dockerfile, pois alguns nomes de pacotes mudaram:
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
Passo 3: Verifique se todas as dependências estão resolvidas
Execute ldd novamente para confirmar que não há entradas não resolvidas restantes:
ldd IronInterop.so
Todas as entradas devem mostrar um caminho resolvido em vez de not found. Uma vez que todas as dependências estejam no lugar, a renderização de PDF através do aplicativo web funcionará normalmente. Para a lista completa de pacotes necessários em distribuições Linux, consulte o guia de implantação Linux.

