我们有一台运行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
现在,当我尝试相同的事情时,我得到一个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"
。
即使删除刷新并导航并显示页面,我们也不会抛出异常,但是网页没有显示,我们只是得到一个没有任何内容的白色背景。
答案 0 :(得分:0)
这被证明是一个非常误导性的错误。
CE运行的产品是KEBA keTop链坠。 KEBA在其机器上为CE发布不同的固件和操作系统版本。升级吊坠时,我从1.2 PRO升级到1.3 Standard。 标准版不包含Internet Explorer 。据我所知,IE在查看网页时非常重要( sarcasm )。
这里的解决方案是升级到1.4 PRO。
有趣的是,WebBrowser
异常并不知道IE丢失的事实。