Silverlight在IE中无法显示

考虑到此问题的发生很难解决解决方法的示例意义,特发在首页

问题提出: Silverlight在IE中无法显示提示下载,在Firefox中正常
系统环境: Vista,IE7
对应版本: 1.0 RC,1.0 RTW,1.1 Alpha Aug./Sept. Refresh
现象描述: 访问包含Silverlight的页面提示下载并安装Silverlight,安装后显示安装成功,刷新页面后,仍然提示需要下载安装;然而打开Firefox访问该页面却能够正常显示。注:在Vista中安装要使用Administrator权限(快捷菜单,Run as administrator)
解决过程:
尝试了卸载重新安装,重新启动等,均不能解决。问题看似很简单,但是解决起来却有些无从下手。首先想到的是能否得到一些Log或者Debug的信息,但是没有找到方法;后在Silverlight产品部晓颖的提示下参考了部分资料,采用如下方法(以后许多问题可以这样查看):
 
1、下载最新的微软 Process Monitor
2、启动IE并打开包含某Silverlight程序的页面
3、打开Process Monitor,选择过滤Process Name is iexplore.exe(图1)。

4、刷新上述包含Silverlight程序的页面
5、这时会发现iexplore.exe会试图访问HKCR/AgControl.AgControl,但是访问结果却是ACCESS DENIED(图2)。 问题就是这里了!


6、问题发现了,解决起来却不那么简单。打开注册表,试试修改HKCR/AgControl.AgControl的权限?Access is denied,无论如何也不让修改
7、查了资料,终于发现,是HKCR的权限有问题(权限用户列表为空,和别的机器不一样)而导致安装的AgControl.AgControl有问题,原来如此!找一个正常的Vista注册表项(谢谢 Felix ),参照一下设置自己机器的HKCR权限(图3)。

8、卸载Silverlight,重新安装,OK,搞定!
结论: 看似是Silverlight安装程序的问题,实际是注册表HKCR本身有问题。Process Monitor是一个很好的调试程序的工具。
参考: 目前网上Silverlight的参考资料还很少,只有Silverlight官方的Forum有一些参考:
http://silverlight.net/forums/p/600/11562.aspx
http://silverlight.net/forums/t/3391.aspx

相关文章

如何在Silverlight4(XAML)中绑定IsEnabled属性?我试过简单的...
我正在编写我的第一个vb.net应用程序(但我也会在这里标记c#,...
ProcessFile()是在UIThread上运行还是在单独的线程上运行.如...
我从同行那里听说,对sharepoint的了解对职业生涯有益.我们不...
我正在尝试保存一个类我的类对象的集合.我收到一个错误说明:...
我需要根据Silverlight中的某些配置值设置给定控件的Style.我...