You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DotNetBrowser从V1升级到V2时的异常问题求助

DotNetBrowser V1 迁移至 V2 启动异常与权限问题排查记录

迁移背景

  • 此前长期使用DotNetBrowser V1版本,Chromium二进制文件集成在NuGet包中运行稳定,多实例启动复用用户目录的问题已在多年前解决
  • 2020年获取V2版本许可证,遂升级至当时最新的2.24.1版本,完成JavaScript调用适配后,引擎启动环节出现严重阻碍

核心问题现象

  • 调用EngineFactory.Create初始化引擎时耗时长达数分钟,疑似卡在Chromium DLL下载/解压环节,频繁抛出以下异常:
    • RPC call timed out
    • Cannot perform this operation, because the object is already disposed
  • 偶尔成功创建IEngine实例后,创建IProfile或IBrowser时会触发Cannot perform this operation because the connection to Chromium is closed异常
  • 确认无额外DotNetBrowser实例运行,但初始化始终耗时极久且最终触发异常

初始化代码片段

string base_data_directory = @"C:\test";
string chromium_directory = base_data_directory + @"\chromium_dir";

EngineOptions engineOptions = new EngineOptions.Builder
{
    ChromiumDirectory = base_data_directory,
    CrashDumpDirectory = chromium_directory + @"\CrashDump\",
    UserDataDirectory = chromium_directory + @"\User\",
    SandboxDisabled = true
}.Build();
IEngine engine = EngineFactory.Create(engineOptions);

尝试的排查与修复路径

  1. 许可证版本兼容性验证

    • 查阅官方FAQ得知,许可证仅对有效期内发布的版本有效,虽未收到许可证相关异常,仍尝试回退至许可证有效期内的最后版本2.1.1
    • 回退后出现新异常:Unable to find or restore compatible Chromium binaries. The compatible binaries were not found in the assembly,且NuGet中无公开的2.1.1版本Chromium配套包
  2. 日志与权限排查

    • 2023.11.03补充日志分析后,怀疑问题出在许可证应用环节
    • 2023.11.06最终定位:问题源于用户数据目录、崩溃转储目录及Chromium目录的权限配置异常,该问题仅影响Windows 10设备,Windows 11无此现象

最终修复方案

通过以下代码确保目标目录具备足够权限,解决启动异常问题:

private DirectoryInfo MakeDirectoryAndUpdateSecuritySettings(string directory)
{
    DirectoryInfo dir = Directory.CreateDirectory(directory);
    dir.Attributes &= ~FileAttributes.ReadOnly;
    DirectorySecurity security = dir.GetAccessControl();
    SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
    security.AddAccessRule(new FileSystemAccessRule(everyone, FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.InheritOnly, AccessControlType.Allow));
    dir.SetAccessControl(security);
    return dir;
}

疑问

是否有其他开发者遇到过同类权限导致的DotNetBrowser V2启动异常?若启动耗时过长及随机异常无法彻底解决,我可能会退回V1版本。

内容的提问来源于stack exchange,提问作者Justin W.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 05:03:32