GPU處理不可用

This article was translated from English: Does it need improvement?
Translated
View the article in English
[0110/094441.173:ERROR:network_service_instance_impl.cc(521)] Network service crashed, restarting service.
[0110/094442.261:ERROR:gpu_process_host.cc(990)] GPU process exited unexpectedly: exit_code=255
[0110/094442.261:WARNING:gpu_process_host.cc(1337)] The GPU process has crashed 3 time(s)
[0110/094442.261:FATAL:gpu_data_manager_impl_private.cc(440)] GPU process isn't usable. Goodbye.

如果您在使用 IronPDF 时遇到类似上述的錯誤,特別是在 Azure 上部署時,那麼您並不孤單。這個錯誤已知會導致應用程序崩潰,通常與位於 runtimes 資料夾中的 IronCefSubprocess.exe 有關,這是 IronPDF 的一個關鍵組件。

可能的原因

導致此 GPU 處理執行錯誤的因素有很多。以下是一些最常見的原因:

  1. 缺少對 IronCefSubprocess 的執行權限

    IronCefSubprocess.exe 必須具有執行權限,IronPDF 才能正確初始化 ChromePdfRenderer 類別。

  2. 錯誤的 Azure 部署步驟

    IronPDF 在 Azure 中的部署過程在 Linux 和 Windows 中有所不同,遵循錯誤的步驟會觸發這個錯誤。

  3. 缺少 DLL 依賴項

    IronCefSubprocess.exe 需要某些 DLL 文件才能正常執行。缺少 DLL 尤其是在非 Windows 環境中,可能會導致過程失敗。

解決方案

本地環境

如果您在本地遇到此錯誤,請嘗試以下步驟:

  1. 禁用 GPU 模式

將以下行添加到您的代碼中,以禁用 IronPDF 的 GPU 模式:

IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
VB   C#
  1. 授予執行權限

確保 IronCefSubprocess.exe 擁有執行權限。對於 Linux 系統,使用以下命令:

chmod 755 IronCefSubprocess 
# You may need to specify an exact path
# IronCefSubprocess is typically found at bin/runtimes/linux-x64/
# chmod 755 /bin/runtimes/linux-x64/native/IronCefSubprocess
# in some cases you may need to use chmod 777 .
  1. 檢查缺失的DLL

如果上述步驟未解決問題,手動執行 IronCefSubprocess.exe 以檢查缺失的DLL。系統將顯示一個錯誤框,標示出缺失的DLL。安裝所需的DLL並重新運行應用程序。

Azure 部署

如果在將應用程式部署到 Azure 後發生錯誤,請按照以下步驟操作:

  1. 使用 ZipDeploy

使用 ZipDeploy 部署您的應用程式,以確保所有文件都正確打包。

  1. 取消選中從包文件運行

確保在部署過程中取消選中 從包文件運行選項。

  1. 為 Linux 容器化

如果應用程式針對 Linux 環境,請考慮在部署到 Azure 之前使用 Docker 進行容器化。參考 Docker 設置指南 詳細說明。

  1. 啟用單一進程模式

新增以下程式碼以強制 IronPDF 以單一進程模式運行:

IronPdf.Installation.SingleProcess = true;
IronPdf.Installation.SingleProcess = true;
IronPdf.Installation.SingleProcess = True
VB   C#

如果以上解決方案都無法解決此問題,請提交一份 工程需求 尋求個人化幫助。