BlogJava 联系 聚合 管理  

Blog Stats

News

近期活动:

随笔分类

随笔档案

朋友的BLOG

社区


无言独上西楼,月如钩,寂寞梧桐深夜锁清秋

  安装了M$十二月的补丁后,可能影响使用了ActiveX的B/S应用,存在两种可能的原因。
原因一:由于注册表项丢失。
  奇怪,更新补丁会导致注册表项丢失?奇怪的M$
解决一:
  更新注册表
  
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{0000031A
-0000-0000-C000-000000000046}]
@
="ClassMoniker"

[HKEY_CLASSES_ROOT\CLSID\{0000031A
-0000-0000-C000-000000000046}\InprocServer32]
@
="ole32.dll"

[HKEY_CLASSES_ROOT\CLSID\{0000031A
-0000-0000-C000-000000000046}\ProgID]
@
="clsid"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\CLSID]
@
="{0000031A-0000-0000-C000-000000000046}"

原因二:SFI
  在IE运行COM组件之前,安全更新MS05-052引入了一些附加检查。其目的是阻止未被设计为可在IE中安全实例化的控件被实例化。 其中一项是在一个COM对象可以在IE中运行之前,先检查在Internet区中的ActiveX控件是否存在IObjectSafety 接口。
解决二:
  • 重新编译ActiveX组件(嘿嘿)
  • 移到安全区
  • 修改注册表(呵呵,M$总是支持这种方式来绕开安全设置)
在注册表中设置 ActiveX 兼容性值
可以在注册表中设置 ActiveX 兼容性标志。为此,请按照下列步骤操作:
1.    单击“开始”,单击“运行”,键入 Regedit.exe,然后单击“确定”。
2.    找到以下注册表子项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility
3.    右键单击“ActiveX Compatibility”,指向“新建”,单击“项”,键入 ActiveX 控件的 CLSID,然后按 Enter。
4.    右键单击您在步骤 3 中创建的项,指向“新建”,然后单击“DWORD 值”。
5.    键入 Compatibility Flags,然后按 Enter。
6.    右键单击“Compatibility Flags”,然后单击“修改”。
7.    在“数值数据”框中,键入 00800000,然后单击“确定”。
8.    退出注册表编辑器。

关于SFI和UFI,可以参考俺另一篇BLOG

更多信息,可查询MS知识库
posted on 2005-12-19 09:55 无言独上西楼 阅读(534) 评论(1)  编辑  收藏 所属分类: 巴山夜语

评论

# re: 更新M$十二月的补丁后,可能对B/S应用带来影响 2005-12-19 12:06 Flyingis
好像这几个月微软的补丁总是有问题。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: