【问题标题】:WebView2 Environment Exception (Requested resource is in use)WebView2 环境异常(请求的资源正在使用中)
【发布时间】:2021-11-12 21:50:38
【问题描述】:

当服务器上的多个用户启动 WebView2 应用程序时,我收到以下异常:“请求的资源正在使用中。(来自 HRESULT 的异常:0x800700AA)”

首先启动应用程序的用户仍然可以打开多个会话。我们如何让它与多个用户一起工作?

调试器说问题是由“EnsureCoreWebView2Async”方法产生的。这就是我创建环境的方式:

 var env = await Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(userDataFolder: CacheDirectory);
 await this.EnsureCoreWebView2Async(env);

【问题讨论】:

  • WebView2 的不同实例必须使用不同的UserDataFolder。他们不能共享相同的。然后你得到你的例外。
  • 感谢您的回答。你是说我需要为每个线程创建一个单独的线程吗?
  • CacheDirectory 对于每个实例必须是唯一的。
  • 您如何解释用户能够运行应用程序的多个实例并且它们都共享同一个文件夹?
  • 与“真实”浏览器进行比较:计算机上的每个用户都有自己的用户数据文件夹。这适用于所有浏览器,我知道。这可能是由于隐私和其他问题。所以WebView2 在这个问题上并不特别。可能存在某种“按用户锁定”的效果。

标签: webview2


【解决方案1】:

答案在 Microsoft Docs 中

https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/user-data-folder

我们可以使用System.Environment.UserName 作为目录名。这样它将保持环境分开

请记住,关闭或卸载应用程序时必须清理环境目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 2013-01-09
    相关资源
    最近更新 更多