目录

常见问题

本指南介绍使用 DotNetBrowser 时经常遇到的问题。

在 Windows 上启动失败 

如果 DotNetBrowser 无法在 Windows 上启动,请确保运行环境符合系统要求,并且没有受到防病毒软件的干扰。

尽管我们使用扩展验证签名对 DotNetBrowser 可执行文件进行签名,防病毒软件仍可能会阻止不在白名单中的应用程序。

如果将 DotNetBrowser 加入白名单后问题仍未解决,请启用日志记录、重现问题、收集崩溃转储文件,然后向我们报告问题。

视频无法播放 

如果 DotNetBrowser 不支持视频的格式,该视频将无法播放。请查看支持的视频和音频格式列表。

若要播放采用 DRM 编码的内容,请确保启用 Widevine 组件。

无法登录 Google 账号 

尝试登录 Google 账号时,可能会出现以下消息:

登录错误

据我们所知,有两个因素会对此产生影响:

  • 启用了远程调试。如果浏览器公开了远程调试端口,Google 可能会阻止登录尝试。
  • 浏览器版本过旧。请考虑升级到最新版本的 DotNetBrowser 4.3.2。

未保存用户数据 

DotNetBrowser 将 Cookie、缓存、历史记录和其他类型的数据存储在用户数据目录中。

默认情况下,DotNetBrowser 会在 IEngine 启动时创建该目录,并在引擎关闭时将其删除。因此,登录会话、密码、信用卡信息和其他数据也会被删除。

若要保留这些数据,请为用户数据目录配置一个永久位置:

C#
VB
IEngine engine = EngineFactory.Create(new EngineOptions.Builder
{
    UserDataDirectory = @"C:\Users\Me\DotNetBrowser"
}.Build());
Dim engine As IEngine = EngineFactory.Create(New EngineOptions.Builder With 
{
    .UserDataDirectory = "C:\Users\Me\DotNetBrowser"
}.Build())

颜色配置文件不正确 

在某些环境中,您可能会发现颜色显示不正确。例如,渲染的内容可能呈现黄色色调:

黄色背景

这是由非 sRGB 显示器颜色配置文件导致的。有两种解决方法:

  1. 将显示器颜色配置文件设置为 sRGB。
  2. 通过指定 --force-color-profile=srgb 命令行开关,强制设置 Chromium 颜色配置文件。

在 Windows 上启动缓慢 

启动时间取决于运行环境、硬件性能和已安装的防病毒软件。

DotNetBrowser 的启动过程由多个步骤组成。首先,它从 DLL 文件中提取所需的 Chromium 二进制文件。然后,它启动 Chromium 主进程,并在 .NET 与 Chromium 之间建立连接。

通常,在同一运行环境中只需提取一次 Chromium 二进制文件。此步骤可能会明显减慢启动速度。例如,在配备 i7 处理器、16 GB 内存和 512 GB SSD 的计算机上,该过程需要 2–3 秒。了解如何跳过此步骤。

防病毒软件可能会先检查库的二进制文件,然后才允许 DotNetBrowser 启动这些文件。这会对启动时间产生不利影响。请尝试禁用防病毒软件,看看是否能够解决问题。

如果仍未解决,请启用日志记录、重现问题,然后提交工单,并附上收集到的日志消息和硬件详细信息。

应用程序无响应 

如果您的 .NET 应用程序卡死,并且您认为问题是由 DotNetBrowser 导致的,请执行以下操作:

  1. 启用日志记录。

  2. 重现问题。

  3. 在应用程序卡死时创建进程转储。

    您可以使用 Visual Studio Debugger、ProcDump、DebugDiag 等工具创建 .NET 进程的转储。

  4. 提交工单,并附上日志和进程转储文件。

Chromium 进程崩溃 

DotNetBrowser 在单独的本机进程中运行 Chromium。该进程中的错误可能会导致进程意外终止。发生这种情况时,库会生成一个或多个崩溃转储文件。这些文件对于确定崩溃原因至关重要。

如果 Chromium 进程意外终止,并且您收到退出代码非零的 Engine.Disposed 事件,请报告该问题,并附上生成的一个或多个崩溃转储文件。

在 Windows 上以管理员身份运行 

从 DotNetBrowser 2.27.15 和 3.3.1(Chromium 138)开始,在 Windows 上以管理员权限启动时,Chromium 进程不会启动。这是预期行为。

如果需要以管理员权限运行应用程序,请使用 --do-not-de-elevate 开关:

C#
VB
IEngine engine = EngineFactory.Create(new EngineOptions.Builder
{
    ChromiumSwitches = { "--do-not-de-elevate" }
}.Build());
Dim builder = New EngineOptions.Builder()
builder.ChromiumSwitches.Add("--do-not-de-elevate")

Dim engine As IEngine = EngineFactory.Create(builder.Build())