Electron“网络服务崩溃,正在重新启动服务。”

Posted

技术标签:

【中文标题】Electron“网络服务崩溃,正在重新启动服务。”【英文标题】:Electron "Network service crashed, restarting service." 【发布时间】:2021-12-17 03:44:42 【问题描述】:

偶尔,当我在 Docker 容器中运行 Electron 时,会收到以下错误:

[15:1102/154337.143944:ERROR:network_service_instance_impl.cc(333)] Network service crashed, restarting service.

这会导致在 localhost 上加载了 win.loadURL 的前端应用程序部分呈现

该问题似乎与https://bbs.archlinux.org/viewtopic.php?id=268123 非常相似,但建议中没有任何效果。

运行最新的 Electron 15.0.2 和 Chromedriver 95.0.0

另外,当关闭 Electron 窗口时,我得到一个错误

Error: ERR_FAILED (-2) loading 'https://localhost:port/path_to/index.html'
    at rejectAndCleanup (node:electron/js2c/browser_init:165:7486)
    at Object.stopLoadingListener (node:electron/js2c/browser_init:165:7861)
    at Object.emit (node:events:394:28) 
  errno: -2,
  code: 'ERR_FAILED',
  url: 'https://localhost:port/path_to/index.html'
 [EOL]

在执行 await win.loadURL(url) 时会在 main.js 中捕获

另外,在 Electron 浏览器窗口的控制台日志中,会出现这个错误:

ERROR Error: Uncaught (in promise): ChunkLoadError: Loading chunk 108 failed.
(timeout: https://localhost:port/path_to/108.da4993913b4a27951976.js)
ChunkLoadError: Loading chunk 108 failed.

以前有人遇到过这个问题吗?

【问题讨论】:

【参考方案1】:

我设法找到了引发问题的原因,而不是根本原因。

我注释掉了setCertificateVerifyProc Electron 钩子,问题似乎不再出现了。

// win.webContents.session.setCertificateVerifyProc((request, callback) => 
//   callback(-3);  
// );

在Electron docs 中有一条有趣的说明:

NOTE: The result of this procedure is cached by the network service.

这实际上反映在日志上

network_service_instance_impl.cc(333)] Network service crashed

如果您需要有关此问题的更多信息,请关注 Electron Github 官方问题页面https://github.com/electron/electron/issues/31675

【讨论】:

以上是关于Electron“网络服务崩溃,正在重新启动服务。”的主要内容,如果未能解决你的问题,请参考以下文章

为 windows 创建应用安装程序 - Electron (electron-packager, electron-builder)

用electron将Vue项目打包为window和Mac桌面应用 (electron-packager与electron-build)

03、electron-builder打包命令报错

vue+electron打包不能网络请求

Electron——查看Electron的版本

Electron——查看Electron的版本