随笔 - 4  文章 - 0  评论 - 50 

Silverlight在IE中无法显示但在Firefox中正常的原因和解决办法

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

问题提出: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

posted on 2007-09-12 23:30  Ariel Y.  阅读(4926)  评论(4编辑  收藏