WEBSITE_RUN_FROM_PACKAGEを使用したAzure Linux上でのIronPDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

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
SHELL

これは一時的な修正です。 この方法でインストールされたパッケージは、再起動を跨いで保持されず、アウトバウンドファイアウォール制限のあるプロダクション環境には適していません。 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="*" />
XML

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への移行は、根本原因を完全に取り除きます。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 20,088,359 | バージョン: 2026.7 リリースされたばかり
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronPdf
サンプルを実行するHTML が PDF に変換されるのを確認します。