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部署您的应用程序以确保所有文件都被正确打包。

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

    在部署期间确保从包文件运行选项处于未选中状态。

  3. 为 Linux 容器化

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

  4. 启用单进程模式

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

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

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