无头模式
在无头 Linux 环境中配置 X 服务器
DotNetBrowser 库可以在无头 Linux 环境中使用,前提是 X 服务器正在运行。
以下是如何启动 X 服务器的说明:
1. 安装 Xvfb 服务器
例如,可以通过在 Ubuntu 20.04 LTS 或其他受支持的基于 Debian 的发行版上使用 apt
来进行安装:
sudo apt install xvfb
2. 运行您的 .NET 应用程序
使用 xvfb-run
命令在虚拟 X 服务器环境中运行所需的命令。 例如,您可以使用 xvfb-run
将 dotnet run
命令封装起来,从源代码运行您的应用程序:
xvfb-run --server-args="-screen 0 800x600x24+32" dotnet run
必须指定屏幕尺寸和颜色深度。
您还可以使用 xvfb-run
来定义 Docker 容器的入口点:
ENTRYPOINT xvfb-run --server-args='-screen 0 800x600x24+32' dotnet Example.Console.dll
在我们的快速入门存储库.中查看实时演示开发容器配置。
关于”无头”命令行标志
Chromium 58 及更高版本支持 --headless
命令行标志,仅适用于 Linux。
该标志允许在 Linux 无头环境下运行 Chromium,无需启动 X 服务器。
该标志主要用于处理只需在无头环境下运行 Chromium,加载某个 URL,并使用 --remote-debugging-port
开关附加到加载的网页的情况。 例如:
chrome --headless --remote-debugging-port=9222 https://chromium.org
在这种情况下,您可以在网络浏览器应用程序中加载 localhost:9222
网页,并使用开发者工具与加载的网页进行交互。
正如您所看到的,--headless
命令行标志是用于在需要加载单个网页并通过开发者工具与之交互时使用的。 我们检查了 Chromium 的源代码,发现这个标志强制 Chromium 使用单独的、有限的 Chromium API 版本,不支持 DotNetBrowser 中使用的大多数功能 (约 80-90%)。
这意味着该标志会禁用大部分 DotNetBrowser 的功能,比如通过 URL、HTML 加载不同的网页,向前和向后导航,执行 JavaScript 等。
这就是为什么 DotNetBrowser 不支持该标志,并建议您启动 X 服务器以在无头的 Linux 环境中使用 DotNetBrowser。