WEBSITE_RUN_FROM_PACKAGEを使用したAzure Linux上でのIronPDF
WEBSITE_RUN_FROM_PACKAGE が有効なAzure Linux App ServiceでIronPDFを使用して.NET APIをデプロイする際、Chromeレンダラーが正常にデプロイされず、アプリケーションが起動時にエラーをスローします。
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')'
WEBSITE_RUN_FROM_PACKAGE が設定されていると、/home/site/wwwroot ディレクトリは読み取り専用になります。 IronPDFは起動時にネイティブのChromeレンダラーバイナリとランタイムライブラリを書き込み可能な場所に抽出する必要があるため、読み取り専用の制限がデプロイを妨げます。 さらに、AzureのデフォルトのLinux環境には、必要なシステムライブラリが事前にインストールされていない可能性があり、共有オブジェクトが欠落するエラーを引き起こします。
解決策
デプロイの制約に応じて、3つのオプションがあります。
オプション 1: SSHを介して欠落している依存関係をインストール
SSHを介してApp Serviceにアクセスし、次のコマンドを実行して必要なシステムライブラリをインストールします:
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
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
これは一時的な修正です。 この方法でインストールされたパッケージは、再起動を跨いで保持されず、アウトバウンドファイアウォール制限のあるプロダクション環境には適していません。 Linuxディストリビューションごとの必要なパッケージの完全なリストについては、Linuxデプロイメントガイドを参照してください。
オプション 2: カスタムDockerコンテナを使用する (Linuxに推奨)
UbuntuまたはDebianに基づいたカスタムDockerイメージを構築し、apt を使用して必要なシステムパッケージをインストールし、プロジェクトファイルにIronPdf およびIronPdf.Native.Chrome.Linux NuGetパッケージを含めます。このアプローチにより、レンダラーは書き込み可能なファイルシステムと、イメージビルド時に予めインストールされた依存関係を持つことができます。
一致するNuGetパッケージを.csprojに追加してください。
<PackageReference Include="IronPdf" Version="*" />
<PackageReference Include="IronPdf.Native.Chrome.Linux" Version="*" />
<PackageReference Include="IronPdf" Version="*" />
<PackageReference Include="IronPdf.Native.Chrome.Linux" Version="*" />
IronPdf.Native.Chrome.Linux のバージョンがIronPdf パッケージのバージョンと一致していることを確認してください。 プロジェクトにネイティブパッケージを含めることで、IronPDFがランタイムダウンロードを試みるのを防ぎます。これは読み取り専用またはネットワーク制限された環境で失敗します。
Dockerfileの完全な例については、IronPDF Dockerガイドを参照してください。
オプション 3: Windows App Serviceへの移行
Windows App Servicesでは、WEBSITE_RUN_FROM_PACKAGE に対する同じファイルシステムのアクセス許可制限がありません。 IronPDFのWindowsランタイムライブラリはネイティブにサポートされており、問題なく抽出できます。 Windows App Serviceへの移行は、根本原因を完全に取り除きます。

