Chromium无头可在Windows Server Core 2016上运行吗?

时间:2018-08-15 13:53:49

标签: chromium puppeteer windows-server-2016

背景

我的任务是用Chromium替换基于IE的打印逻辑,以便我们最终可以支持在Windows Server Core或潜在的其他支持.Net Core的操作系统上运行当前的服务器软件。我目前的想法是使用Chromium embedded framework或使用Puppeteer。我倾向于后者,因为我认为在操作系统之间移植会更容易。

问题

最初,它未能以关于沙箱的错误开始,因此我添加了no-sandbox标志。现在,当我尝试加载Chromium时,它无法启动并出现以下异常,表明它无法加载chrome.dll

 PS C:\Program Files (x86)\Google\Chrome\Application>> .\chrome --headless --enable-logging --disable-gpu --screenshot="C:\screen.png" "https://www.chromestatus.com/"

在debug.log文件中产生以下错误:

  

[0813 / 133208.016:ERROR:main_dll_loader_win.cc(134)]无法从c:\ Program Files(x86)\ Google \ Chrome \ Application \ 68.0.3440.106 \ chrome.dll加载Chrome DLL:指定的模块可能找不到。 (0x7E)

我在互联网上检查了一下,发现了一些关于此错误的提及,但建议的修复似乎无法解决该问题。

2 个答案:

答案 0 :(得分:4)

我能够通过Chocolatey下载Chromium 72.0.3592.0,并且该版本中的问题已解决。我使用Server Core 2016 LTSB进行了测试。

choco install chromium --pre -y

chrome --headless --disable-gpu --dump-dom --enable-logging https://www.chromestatus.com/ --no-first-run


编辑:

如果您尝试使用Docker windowsservercore和chromium运行Selenium Tests:chromium chrome.exe的命令行测试似乎从容器命令行无法运行。

但是,当您在容器中运行dotnet test app.csproj或dotnet vstest app.dll时,网络驱动程序会成功启动并驱动浏览器

答案 1 :(得分:3)

这已报告给Chromium小组。看来Chromium 68+可能与Windows Server 2016有关。

https://bugs.chromium.org/p/chromium/issues/detail?id=873097