Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
加载新HTML页面时.NET WebBrowser组件挂起_.net_Webbrowser Control - Fatal编程技术网

加载新HTML页面时.NET WebBrowser组件挂起

加载新HTML页面时.NET WebBrowser组件挂起,.net,webbrowser-control,.net,Webbrowser Control,我们在一个对话框中嵌入了.NET WebBrowser控件(实际上是两个在不同的选项卡中,如果出于某种原因可能很重要的话),并且遇到了一个奇怪的问题。我无法在完整的应用程序之外重现这个问题,所以我假设我们正在其他地方做一些有副作用的事情。因此,我无法发布任何代码来重现该问题,但我仍然希望至少有人能就如何调试该情况提出建议,并找到组件失败的原因 通常,一切都按预期进行。我们将控件添加到对话框中,并调用其导航方法从服务器获取HTML页面。在某些情况下(可能是20-25%的尝试),控件保持空白并显示等

我们在一个对话框中嵌入了.NET WebBrowser控件(实际上是两个在不同的选项卡中,如果出于某种原因可能很重要的话),并且遇到了一个奇怪的问题。我无法在完整的应用程序之外重现这个问题,所以我假设我们正在其他地方做一些有副作用的事情。因此,我无法发布任何代码来重现该问题,但我仍然希望至少有人能就如何调试该情况提出建议,并找到组件失败的原因

通常,一切都按预期进行。我们将控件添加到对话框中,并调用其导航方法从服务器获取HTML页面。在某些情况下(可能是20-25%的尝试),控件保持空白并显示等待的光标。当从独立IE加载相同的URL时,问题是不可再现的

为了定位问题,我们正在记录导航、导航、DocumentCompleted、ProgressChanged和StatusTextChanged事件。在它工作的情况下,我们看到导航、导航和DocumentCompleted事件按此顺序排列,其中混合了几个ProgressChanged和StatusTextChanged事件(具有合理的值)

在组件发生故障的情况下,只会触发导航事件。但是,服务器日志和网络转储都会确认文档是从服务器正确请求和传递的。格式错误或非法的内容当然至少在理论上是可能的,但在组件尝试分析服务器正在交付的任何内容之前,我至少希望组件会出现一个导航事件。我们还能够用完全相同的HTML文档重现成功和失败的行为


那么回到我最初的问题:对情况的描述可能有点单薄,我不希望这个问题有一个完整的解决方案,但至少有人能建议去哪里寻找,去寻找什么?我对.NET开发不是很有经验,但由于WebBrowser可能只是IE ActiveX组件周围的一个薄层,我怀疑我是否能够调试到其内部,以找到问题的任何可能原因?

可能值得您在上尝试此不同的webbrowser组件……它的不同之处在于,您可以使用它实现更多功能。这将是一个有用的测试,以检查它是否与此扩展版本的webbrowser控件一起工作

希望这有帮助, 顺致敬意,
汤姆。

我想这件事我得自己回答。虽然我对解决问题的变通方法不是很满意,但我不理解,甚至不理解变通方法的工作原理,我们设法修改了代码,这样我们至少不能重现这种奇怪的行为。技巧是调用
Navigate(“about:blank”)之前,使用真实URL导航


我认为该解决方案解决了某种时间或并发问题。

非常感谢您的建议。即使它包装了常规的WebBrowser控件,它似乎也暴露了更多的内部构件。明天我会试试看它是否有用。添加导航(“about:blank”)也解决了我的问题。但为什么呢?是虫子吗?