IronPDF 中的 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
$vbLabelText   $csharpLabel
  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 .
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 .
SHELL
  1. 检查缺失的DLL文件

    如果上述步骤未能解决问题,请手动执行IronCefSubprocess.exe以检查缺失的DLL。 系统将显示一个错误框,标识出缺失的 DLL。 安装所需的 DLL 并重新运行应用程序。

Azure 部署

如果错误发生在将应用部署到Azure之后,请按照以下步骤操作:

  1. 使用 ZipDeploy

    使用ZipDeploy部署您的应用程序以确保所有文件都被正确打包。

  2. 取消选中从包文件运行

    确保在部署过程中取消选中**Run From Package File**选项。

  3. 为 Linux 容器化

    如果您的应用程序针对Linux环境,请在部署到Azure之前考虑使用Docker进行容器化。 请参阅Docker 设置指南以获取详细说明。

  4. 启用单进程模式

    将以下代码添加到您的项目中,使IronPDF以单进程模式运行:

IronPdf.Installation.SingleProcess = true;
IronPdf.Installation.SingleProcess = true;
IronPdf.Installation.SingleProcess = True
$vbLabelText   $csharpLabel

如果上述解决方案均未能解决问题,请提交工程请求以获取个性化帮助。