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类。

  1. Azure部署步骤不正确

IronPDF在Azure上的部署过程在Linux和Windows之间存在差异。按照错误的步骤进行部署可能会引发此错误。

  1. 缺少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#

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