WEBSITE_RUN_FROM_PACKAGE와 함께 Azure Linux에서 IronPDF

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

IronPDF를 사용하는 .NET API를 WEBSITE_RUN_FROM_PACKAGE가 활성화된 Azure Linux App Service에 배포할 때, 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 환경에는 필수 시스템 라이브러리가 사전 설치되어 있지 않을 수 있으며 이는 공유 개체 누락 에러를 발생시킵니다.

해결책

배포 제약에 따라 세 가지 옵션을 사용할 수 있습니다.

옵션 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와 함께 필요한 시스템 패키지를 설치하며, IronPdfIronPdf.Native.Chrome.Linux NuGet 패키지를 프로젝트 파일에 포함하십시오. 이 접근 방식은 이미지 빌드 시점에 렌더러에 쓰기 가능한 파일 시스템과 사전 설치된 종속성을 제공합니다.

해당 .csproj에 일치하는 NuGet 패키지를 추가하십시오:

<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가 런타임 다운로드를 시도하지 않게 되어, 읽기 전용 또는 네트워크 제한된 환경에서 실패할 가능성을 방지합니다.

IronPDF Docker 가이드에서 전체 Dockerfile 예제를 참조하십시오.

옵션 3: Windows App Service로 마이그레이션

Windows App Services는 WEBSITE_RUN_FROM_PACKAGE에 대해 동일한 파일 시스템 권한 제한이 없습니다. IronPDF의 Windows 런타임 라이브러리는 네이티브로 지원되며 문제없이 추출할 수 있습니다. Windows App Service로 마이그레이션하면 근본 원인이 완전히 제거됩니다.

Curtis Chau
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

시작할 준비 되셨나요?
Nuget 다운로드 20,088,359 | 버전: 2026.7 방금 출시
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package IronPdf
샘플을 실행하세요 HTML이 PDF로 변환되는 것을 지켜보세요.