IRONSOFTWAREHOME

IronPDF on Azure Linux with WEBSITE_RUN_FROM_PACKAGE

Curtis Chau
Curtis Chau
Updated: August 31, 2026

When deploying a .NET API using IronPDF on an Azure Linux App Service with WEBSITE_RUN_FROM_PACKAGE enabled, the Chrome renderer fails to deploy and the application throws an error on startup.

Error while deploying IronPdf Chrome renderer: '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')'
Text

When WEBSITE_RUN_FROM_PACKAGE is set, the /home/site/wwwroot directory becomes read-only. IronPDF needs to extract native Chrome renderer binaries and runtime libraries to a writable location at startup, so the read-only restriction blocks deployment. In addition, Azure's default Linux environment may not have the required system libraries pre-installed, which causes the missing shared object errors.

Solution

Four options are available depending on your deployment constraints.

If you stay on a native package, IronPDF also needs a writable location for its binaries. From IronPDF 2026.8.1, the deployment error names this cause and the available remedies directly, and you can relocate the writable paths yourself:

IronPdf.Installation.TempFolderPath = "/home/data/ironsoftware/";
IronPdf.Installation.CustomDeploymentDirectory = "/home/data/ironsoftware/";
C#

Set these before the first IronPDF call. This addresses the read-only filesystem, but not the missing system libraries, which still need one of the options below.

Option 1: Install Missing Dependencies via SSH

Access the App Service via SSH and run the following commands to install the required system libraries:

apt update
apt install -y libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 \
  libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 \
  libxkbcommon-x11-0 libxrender1 libfontconfig1 libxshmfence1
SHELL

This is a temporary fix. Packages installed this way do not persist across restarts and are not suitable for production environments that have outbound firewall restrictions. For the full list of required packages by Linux distribution, see the Linux deployment guide.

Build a custom Docker image based on Ubuntu or Debian, install the required system packages with apt, and include the IronPdf and IronPdf.Native.Chrome.Linux NuGet packages in your project file. This approach gives the renderer a writable filesystem and pre-installed dependencies at image build time.

Add the matching NuGet packages to your .csproj:

<PackageReference Include="IronPdf" Version="*" />
<PackageReference Include="IronPdf.Native.Chrome.Linux" Version="*" />
XML

Make sure the version of IronPdf.Native.Chrome.Linux matches your IronPdf package version. Including the native package in the project prevents IronPDF from attempting a runtime download, which would fail in a read-only or network-restricted environment.

See the IronPDF Docker guide for a full Dockerfile example.

Option 3: Migrate to a Windows App Service

Windows App Services do not have the same filesystem permission restrictions for WEBSITE_RUN_FROM_PACKAGE. IronPDF's Windows runtime libraries are natively supported and can be extracted without issue. Migrating to a Windows App Service removes the root cause entirely.

Option 4: Use IronPdf.Slim with a Remote IronPdfEngine

Install IronPdf.Slim and point it at a remote IronPdfEngine. Rendering runs on the engine, so no Chrome renderer binaries or Linux system libraries have to be deployed into the read-only /home/site/wwwroot at all, and WEBSITE_RUN_FROM_PACKAGE can stay enabled.

Use IronPDF 2026.8.1 or later for this. On earlier versions, a startup file system scan can fail under WEBSITE_RUN_FROM_PACKAGE before the engine connection is used. That failure is covered in Startup Crash with Run From Package.

Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...
Read More

Ready to Get Started?

Nuget Downloads 20,878,335Version:2026.9just released

Get your free 30-day Trial Key instantly.
No credit card or account creation required
C# NuGet Library for PDF
Install with NuGet

Version: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. In Solution Explorer, right-click References, Manage NuGet Packages
  2. Select Browse and search "IronPdf"
  3. Select the package and install
C# PDF DLL
Download DLL

Version: 2026.9

or download Windows Installer here.

  1. Download and unzip IronPDF to a location such as ~/Libs within your Solution directory
  2. In Visual Studio Solution Explorer, right click References. Select Browse, "IronPdf.dll"

Licenses from $999

Key in blue circle

Get your free 30-day Trial Key instantly.

Your trial license will be sent to your email address

No limitations. 100% unlocked. No credit card.

bullet_checkedNo credit card or account creation requiredNo limitations. 100% unlocked. No credit card.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Book your free Live Demo
Booking Badge

Trusted by Millions of Engineers Worldwide

Iron Software's customer logos
Get Your No-Obligation Consult
Complete the form below or email sales@ironsoftware.com
Your details will always be kept confidential.
Trusted by Millions of Engineers Worldwide
Iron Software's customer logos
Get your free 30-day Trial Key instantly.
No credit card or account creation required