请求的资源正在使用中。 (HRESULT 异常:0x800700AA)- Microsoft WebView
The requested resource is in use. (Exception from HRESULT: 0x800700AA) - Microsoft WebView
我有以下代码来启动 webview
var env = await Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(userDataFolder: Path.Combine(Path.GetTempPath(), $"{Environment.UserName}_Browser"));
await webView21.EnsureCoreWebView2Async(env);
var url = $"Field1=A2&TypeId=1&ItemId=1234";
var postData = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(url));
var request = webView21.CoreWebView2.Environment.CreateWebResourceRequest("https://xxxx/xxxx", "POST", postData, "Content-Type: application/x-www-form-urlencoded");
webView21.CoreWebView2.NavigateWithWebResourceRequest(request);
据我了解,当多个用户在同一台服务器上使用该应用程序时,提供唯一的 userDataFolder 应该不会造成问题。它适用于某些用户,但对某些用户会抛出异常。我有什么遗漏吗?
使用 Microsoft.Web.WebView2 -版本 1.0.1108.44
异常
System.Runtime.InteropServices.COMException (0x800700AA): The requested resource is in use. (Exception from HRESULT: 0x800700AA)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at Microsoft.Web.WebView2.Core.CoreWebView2Environment.<CreateCoreWebView2ControllerAsync>d__54.MoveNext()
通过查看您包含的异常,它表明同一个 userdatafolder
被多个 WebView2
实例使用。要解决该问题,我建议您为 运行.
的每个 WebView2
实例创建一个新文件夹
为此,您可以简单地为文件夹创建一个随机名称,而不是为每个用户使用一个名称。像这样:
Random rnd = new Random();
string subFolder = rnd.Next().toString();
var env = await Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(userDataFolder: Path.Combine(Path.GetTempPath(), $"{Environment.UserName}", subFolder));
但是,您应该考虑在程序关闭时再次删除该文件夹(否则您会得到很多临时文件夹)。
我有以下代码来启动 webview
var env = await Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(userDataFolder: Path.Combine(Path.GetTempPath(), $"{Environment.UserName}_Browser"));
await webView21.EnsureCoreWebView2Async(env);
var url = $"Field1=A2&TypeId=1&ItemId=1234";
var postData = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(url));
var request = webView21.CoreWebView2.Environment.CreateWebResourceRequest("https://xxxx/xxxx", "POST", postData, "Content-Type: application/x-www-form-urlencoded");
webView21.CoreWebView2.NavigateWithWebResourceRequest(request);
据我了解,当多个用户在同一台服务器上使用该应用程序时,提供唯一的 userDataFolder 应该不会造成问题。它适用于某些用户,但对某些用户会抛出异常。我有什么遗漏吗?
使用 Microsoft.Web.WebView2 -版本 1.0.1108.44
异常
System.Runtime.InteropServices.COMException (0x800700AA): The requested resource is in use. (Exception from HRESULT: 0x800700AA)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at Microsoft.Web.WebView2.Core.CoreWebView2Environment.<CreateCoreWebView2ControllerAsync>d__54.MoveNext()
通过查看您包含的异常,它表明同一个 userdatafolder
被多个 WebView2
实例使用。要解决该问题,我建议您为 运行.
WebView2
实例创建一个新文件夹
为此,您可以简单地为文件夹创建一个随机名称,而不是为每个用户使用一个名称。像这样:
Random rnd = new Random();
string subFolder = rnd.Next().toString();
var env = await Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(userDataFolder: Path.Combine(Path.GetTempPath(), $"{Environment.UserName}", subFolder));
但是,您应该考虑在程序关闭时再次删除该文件夹(否则您会得到很多临时文件夹)。