Csharp/C#教程:如何修复“请求的资源正在使用中。 (HRESULTexception:0x800700AA)“分享


如何修复“请求的资源正在使用中。 (HRESULTexception:0x800700AA)“

我该如何解决这个错误?

“请求的资源正在使用中。(HRESULTexception:0x800700AA)”。

在使用C#.NET中的WebBrowser控件导航到其他网站时出现。 为什么?

如果当前正在处理导航操作,或者当前打开控件的任何阻止对话框(包括上下文菜单,Javascript警报,NTLM登录对话框等),则WebBrowser控件被视为“正在使用”。 您可以使用WebBrowser.IsBusy属性来检测这些状态。

如果由于当前未完成的导航操作,您可以尝试停止当前导航(如果确实要在页面未完成加载时停止)或将新导航添加到请求队列并使用计时器等待WebBrowser.IsBusy返回false。

如果繁忙状态是由一个或多个打开的阻塞对话框引起的,则可以执行相同的等待技术,也可能是Messagebox.Show()用户一条消息,由于打开的对话框窗口导致挂起导航被延迟。

我有同样的问题。 调用WebBrowser.Stop()没有帮助, WebBrowser.IsBusy从未变为false。

事实certificate,如果页面创建任何类型的对话框alert()弹出窗口,javascript错误,NTLM登录弹出窗口等) ,则在对话框关闭之前,您无法离开页面。

我的解决方案是阻止对话框首先显示。 显然阻止所有这些弹出窗口很简单; 刚设置

 webBrowser.ScriptErrorsSuppressed = true; 

 bool go = false; string SiteContent1 = string.Empty; string SiteContent2 = string.Empty; int index = 0; WebBrowser wb = new WebBrowser(); void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { try { if (go) { SiteContent2 = wb.DocumentText; // Code to compare to contents of the webbrowser index++; go = false; steps = 1; } if (!go) { if (index >= TotalSiteCount) { Stop(); } else if (steps == 1) { wb.Navigate(UrltocompareList[index].Url1); } else if (steps == 2) { SiteContent1 = wb.DocumentText; wb.Navigate(UrltocompareList[index].Url2); go = true; } steps++; } } catch (Exception ex) { MessageBox.Show(ex.Message); } } 

UrltocompareList是要比较的2个站点的集合。
TotalSiteCount是UrltocompareList中的项目数。
这种formsinheritanceIOleClientSite以删除媒体,如图像,video和没有活动的X下载,以便在webbrowser控件中具有更快的渲染时间。

我用这个方法代替system.net.webclient来获取网页的html然后比较它们。
当它遇到wb.Navigate方法时我遇到了这个错误。

我在Windows 10中使用watin运行specflow测试时遇到的一个问题是win10默认使用MS Edge,所以我从未打开IE,当watin启动时,IE卡在使用默认设置的提示上。 选择选项,关闭浏览器和运行测试再次为我工作。

只是值得关注的东西

第一次尝试

1- 请检查导航URL (如果您检查,请再次检查已编译的文件夹)

2-删除WebBrowser控件并添加新内容

我忘了复制原始文件App.Path +“ error.html”并看到这个问题。

保证方法

我修复了VB6中的此错误

添加WebBrowserControl wb(0)(名称wb,索引= 0)

以前和之前导航

 For i = 1 To wb.UBound Unload wb(i) Next Load wb(1) wb(0).Visible = False wb(1).Visible = true wb(1).Navigate URL 

这很容易解决。 当浏览器在执行操作时提交操作时,会发生此错误。 例如,当您在Web浏览器中右键单击时,您将导航到某个网站。 为了解决这个问题,我做了以下几点:

上述就是C#学习教程:如何修复“请求的资源正在使用中。 (HRESULTexception:0x800700AA)“分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 //if my webbrowser isn't performing any actions if(!myWebBrowser.IsBusy) { //Navigate myWebBrowser.Navigate("https://www.google.com"); } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1019946.html

(0)
上一篇 2022年1月4日
下一篇 2022年1月4日

精彩推荐