刷新WebBrowser对象时出现Microsoft.AGL.Common.MISC.HandleAr(PAL_ERROR ar)异常

时间:2015-10-29 00:01:32

标签: c# windows-ce

我们有一台运行Microsoft CE v6.0的设备,其中一个应用程序在我认为是围绕.NET 2.5运行。

我们有一种通过使用WebBrowser对象和本地存储的html页面在设备屏幕上显示某些信息的独特方式。

基本上我们这样做:

//Create a WebBrowser object
public WebBrowser htmlUserText = new WebBrowser(); // Initialization in main form
SetupInternalControl(htmlUserText, pnlCenterDisplay); 


// Set up a default html file and point the web browser at it. 
htmlFile = new StreamWriter("\\Temp\\HtmlText.html");
htmlFile.Write("<html><body scroll=no bgcolor = #646464><font color = #FFFFFF>");
htmlFile.Close();
htmlUserText.Navigate(new Uri("\\Temp\\HtmlText.html")); // This is a constant file we create some default stuff in it. 
htmlUserText.Visible = false;

// At some point we can write some html to the file and after it is closed we do this:
htmlUserText.Refresh();
htmlUserText.Visible = true;
htmlUserText.BringToFront();

以前版本的windows ce中的影响是显示了网页:

这是一个示例html文件和结果:

<html><body scroll=no bgcolor = #646464><font color = #FFFFFF>lalalalalalala

enter image description here

现在,当我尝试相同的事情时,我得到一个Exception,其中包含以下堆栈跟踪:

>Error
>Exception
>at
>Microsoft.AGL.Common.MISC.HandleAr(PAL_ERROR ar)
>at
>System.Windows.Forms.WebBrowser.Refresh()
>at ....

我已经阅读了类似this之类的问题,但我的问题似乎是特定于此刷新,我不熟悉其余的代码和资源是否已打开/未清理。我也看过this但是忽略脚本错误并没有做任何事情。

我无法单步执行代码,因为它在外部设备上运行并且没有连接到我的电脑。当我在try catch行周围refresh()时,我会收到异常,但根本没有帮助,它没有内部异常,而且消息只是"Exception"

  1. 这些代码的执行方式是否有任何明显不妥之处。我知道它可能不是最佳的,但如果我不必,我不打算改变遗留代码。
  2. 如何才能获得有关原因的更详细信息,以便对其进行追踪?
  3. 即使删除刷新并导航并显示页面,我们也不会抛出异常,但是网页没有显示,我们只是得到一个没有任何内容的白色背景。

1 个答案:

答案 0 :(得分:0)

这被证明是一个非常误导性的错误。

CE运行的产品是KEBA keTop链坠。 KEBA在其机器上为CE发布不同的固件和操作系统版本。升级吊坠时,我从1.2 PRO升级到1.3 Standard。 标准版不包含Internet Explorer 。据我所知,IE在查看网页时非常重要( sarcasm )。

这里的解决方案是升级到1.4 PRO。

有趣的是,WebBrowser异常并不知道IE丢失的事实。