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

WebView2多用户启动报错Requested resource is in use(0x800700AA)解决方案问询

问题根因

错误码0x800700AA是WebView2用户数据文件夹被独占锁定的典型报错。WebView2的用户数据目录默认带有进程级独占锁,且仅允许创建该目录的用户身份读写。你当前的代码为所有用户指定了同一个固定的CacheDirectory作为用户数据目录,第一个启动的用户会持有目录锁,其他用户启动时无法获得读写权限,就会抛出该异常。而同一用户启动多个会话时身份匹配,可以正常共享该目录,所以不会报错。

修复方案

核心逻辑为给每个独立用户分配专属的用户数据目录,避免多用户共享同一路径。你可以在原有缓存目录基础上拼接当前系统用户的唯一标识,生成每个用户独立的缓存路径即可。

推荐使用用户SID作为标识(避免用户名重复冲突),示例代码如下:

using System.IO;
using System.Security.Principal;
using Microsoft.Web.WebView2.Core;

// 取当前用户SID作为目录唯一标识
string userUniqueId = WindowsIdentity.GetCurrent().User.Value;
string userCacheDir = Path.Combine(CacheDirectory, userUniqueId);

// 用用户独立路径创建WebView2环境
var env = await CoreWebView2Environment.CreateAsync(userDataFolder: userCacheDir);
await this.EnsureCoreWebView2Async(env);

如果你的场景不存在用户名重复的情况,也可以用更简单的用户名作为标识:

string userUniqueId = Environment.UserName;
string userCacheDir = Path.Combine(CacheDirectory, userUniqueId);
注意事项
  • 需确保根目录CacheDirectory对所有访问用户开放读写权限,WebView2会自动创建层级不存在的子目录,无需额外手动创建
  • 同一用户启动多个应用会话时共享同一份用户数据目录是WebView2原生支持的,不会出现冲突,符合你当前的使用需求
  • 如果需要实现同一用户的多个会话完全隔离,可以在路径中再拼接唯一的会话实例ID,即可实现同用户多实例的目录隔离

内容的提问来源于stack exchange,提问作者Zimo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:24:04