常见问题
本指南介绍使用 DotNetBrowser 时经常遇到的问题。
在 Windows 上启动失败
如果 DotNetBrowser 无法在 Windows 上启动,请确保运行环境符合系统要求,并且没有受到防病毒软件的干扰。
尽管我们使用扩展验证签名对 DotNetBrowser 可执行文件进行签名,防病毒软件仍可能会阻止不在白名单中的应用程序。
如果将 DotNetBrowser 加入白名单后问题仍未解决,请启用日志记录、重现问题、收集崩溃转储文件,然后向我们报告问题。
视频无法播放
如果 DotNetBrowser 不支持视频的格式,该视频将无法播放。请查看支持的视频和音频格式列表。
若要播放采用 DRM 编码的内容,请确保启用 Widevine 组件。
无法登录 Google 账号
尝试登录 Google 账号时,可能会出现以下消息:

据我们所知,有两个因素会对此产生影响:
- 启用了远程调试。如果浏览器公开了远程调试端口,Google 可能会阻止登录尝试。
- 浏览器版本过旧。请考虑升级到最新版本的 DotNetBrowser 4.3.2。
未保存用户数据
DotNetBrowser 将 Cookie、缓存、历史记录和其他类型的数据存储在用户数据目录中。
默认情况下,DotNetBrowser 会在 IEngine 启动时创建该目录,并在引擎关闭时将其删除。因此,登录会话、密码、信用卡信息和其他数据也会被删除。
若要保留这些数据,请为用户数据目录配置一个永久位置:
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 显示器颜色配置文件导致的。有两种解决方法:
- 将显示器颜色配置文件设置为 sRGB。
- 通过指定
--force-color-profile=srgb命令行开关,强制设置 Chromium 颜色配置文件。
在 Windows 上启动缓慢
启动时间取决于运行环境、硬件性能和已安装的防病毒软件。
DotNetBrowser 的启动过程由多个步骤组成。首先,它从 DLL 文件中提取所需的 Chromium 二进制文件。然后,它启动 Chromium 主进程,并在 .NET 与 Chromium 之间建立连接。
通常,在同一运行环境中只需提取一次 Chromium 二进制文件。此步骤可能会明显减慢启动速度。例如,在配备 i7 处理器、16 GB 内存和 512 GB SSD 的计算机上,该过程需要 2–3 秒。了解如何跳过此步骤。
防病毒软件可能会先检查库的二进制文件,然后才允许 DotNetBrowser 启动这些文件。这会对启动时间产生不利影响。请尝试禁用防病毒软件,看看是否能够解决问题。
如果仍未解决,请启用日志记录、重现问题,然后提交工单,并附上收集到的日志消息和硬件详细信息。
应用程序无响应
如果您的 .NET 应用程序卡死,并且您认为问题是由 DotNetBrowser 导致的,请执行以下操作:
启用日志记录。
重现问题。
在应用程序卡死时创建进程转储。
您可以使用 Visual Studio Debugger、ProcDump、DebugDiag 等工具创建 .NET 进程的转储。
提交工单,并附上日志和进程转储文件。
Chromium 进程崩溃
DotNetBrowser 在单独的本机进程中运行 Chromium。该进程中的错误可能会导致进程意外终止。发生这种情况时,库会生成一个或多个崩溃转储文件。这些文件对于确定崩溃原因至关重要。
如果 Chromium 进程意外终止,并且您收到退出代码非零的 Engine.Disposed 事件,请报告该问题,并附上生成的一个或多个崩溃转储文件。
在 Windows 上以管理员身份运行
从 DotNetBrowser 2.27.15 和 3.3.1(Chromium 138)开始,在 Windows 上以管理员权限启动时,Chromium 进程不会启动。这是预期行为。
如果需要以管理员权限运行应用程序,请使用 --do-not-de-elevate 开关:
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())