Focus on Microsoft Sync Framework(MSF), Sync Service for ADO.NET(OCS), Microsoft File Synchronization, Windows Mobile, SQL Server Compact, .NET Compact Framework, Smart Client, Web Service, SQL Server,etc... 随笔-20 评论-75 文章-0 trackbacks-0
一篇非常好的Microsoft Sync Framework的介绍文章,通俗易懂的概述了MSF的使用场景和逻辑结构。分享给大家。
MSDN原文地址:
Microsoft Sync Framework Runtime 简介
内容 简介
Microsoft Sync Framework 是为应用程序、服务和设备启用协作和离线方案的综合性同步平台。它的特色在于提供了能够漫游、共享和离线提取数据的技术和工具。通过使用 Microsoft Sync Framework,开发人员可以构建同步生态系统,该生态系统能够将任何应用程序与任一网络的任意数据集成,无论它们存储在何处,使用何种协议。
Microsoft Sync Framework 最重要的功能是创建自定义同步提供程序。提供程序是代表同步副本的软件组件。副本是将要进行同步的特殊信息仓库,例如手持设备的文件系统。当代表数据源时,提供程序枚举其副本的变化。当代表目的端时,提供程序将变化应用于副本。如果源端和目的端数据在类型或架构方面存在差异,则每个提供程序都将执行各种必需的映射或转换。
Microsoft Sync Framework 包括大量支持常见数据源的提供程序。尽管您可以为这些数据源编写自定义提供程序,但建议您尽可能地使用 Microsoft Sync Framework 提供的提供程序。因为这样能够将开发时间减到最少,并使您能够重用经过测试的现成代码。包括下列提供程序:
ADO.NET 同步服务
:用于同步启用 ADO.NET 的数据源
文件系统同步服务
:用于同步文件和文件夹
SSE 同步服务
:用于同步简单共享扩展 (SSE),如 RSS 源和 ATOM 源
开发人员最终能够使用所提供的所有提供程序,或创建自定义提供程序在设备和应用程序之间交换信息。
本文档其余部分旨在帮助您了解 Microsoft Sync Framework 如何使用同步构建
同步拓扑
。我们将列出一些有关同步提供程序的主要概念,它们将帮助您理解如何创建提供程序。有关 Microsoft Sync Framework 的更多详细信息,请参阅 。
参与方
在讨论特定提供程序组件之前,我们需要首先了解 Microsoft Sync Framework 支持的不同类型的同步参加方。参与方是提供程序及其关联副本的组合。要同步的副本(即信息仓库)可以是取自 Web 服务、笔记本电脑、乃至 U 盘中的任何对象。
参与方类型
Microsoft Sync Framework 支持三种类型的参与方:完整、部分和简单。参与方的类型由其存储和处理同步元数据的能力定义。至少,我们可以假定如有请求,副本具备编程返回信息的能力。最后需要确定的是副本是否能够:
在现有设备上或当前数据存储中存储和操作信息,并
使应用程序(我们称之为同步服务)能够直接在设备上执行
区分将成为同步生态系统一部分的参与方的类型十分重要,因为它使我们了解到该参与方是否能够存储提供程序所需的状态信息,以及我们是否能够直接在设备上运行提供程序。最终,参与方模型将成为通用模型。因此,可以将完整参与方配置为部分或简单参与方。
完整参与方
完整参与方是指允许开发人员直接在设备上创建应用程序和新数据存储的设备。笔记本电脑和智能***就属于完整参与方,因为可以直接从此类设备执行新的应用程序,并且如有必要,您还可以创建新的数据存储以保存信息。
部分参与方
部分参与方是指能够在设备上存储数据的设备。但这些设备无法直接从设备上启动可执行程序。部分参与方的重要特性在于它能够存储同步所需的元数据,并因此得以与任何完整参与方进行同步。部分参与方的一个例子是 U 盘。这些设备类似于硬盘,能够创建、更新或删除信息。但通常它们不提供使应用程序能够直接在设备上运行的接口。
简单参与方
简单参与方是指仅具备当接到请求时提供信息这一种能力的设备。此类设备不能存储或操作新数据,而且不支持创建新的应用程序。简单参与方依靠完整参与方存储其元数据(因此只能与特定的完整参与方进行同步)。
由外部组织(如 Amazon 或 EBay)提供的 RSS 源和 Web 服务都属于简单参与方。这些组织可能会赋予您执行 Web 服务并取回结果的能力,但不会赋予您在其 Web 服务器上创建您自己的数据存储或执行您自己应用程序的能力。
Microsoft Sync Framework 的最终目标是,无论数据源采用哪种参与类型,都允许对它们进行集成。因此,简单和部分参与方可以与完整参与方同步信息。这至少需要一个能够存储信息和启动同步过程的完整参与方。
Microsoft Synchronization Framework
核心组件
在使用 Microsoft Sync Framework 实现同步之前,我们需要首先了解同步提供程序的关键组件。将在本文档后面的同步示例中进一步说明这些概念。
下图显示了提供程序如何与数据源进行通信并从元数据存储中检索状态信息。这些提供程序依次通过同步会话与其他提供程序进行通信。
数据源
数据源是指存储所有需要同步的信息的位置。数据源可以是关系数据库、文件系统、Web 服务,甚或一系列业务应用程序中包含的自定义数据源。凡是能够以编程方式访问的数据都可以参与同步。
元数据
提供程序的基本特征在于它能够存储有关数据存储以及该数据存储中与状态和更改信息相关的对象的信息。元数据可以存储在任意位置,无论它是文件、数据库还是现有的副本数据存储。为方便起见,Microsoft Sync Framework 提供一个以 SQL Server Compact Edition 为基础的完整元数据存储实现。该存储并非必要,但使用它意味着您不必担心如何存储同步元数据。
用于数据存储的元数据可以分为三个主要组件:
版本: 为每个同步项目存储少量信息,称为项目
。该信息记录了项目在何时何处发生变化,以及与该项目关联的项目 ID。在数据库示例中,一个项目可能是表中的整行。一个项目也可能是表中某行的一列。
当项目发生更改时,存储的有关该更改的信息将包括
创建版本 和
更新版本
。这些版本包含两个组件:a 滴答计数 它是一个在整个源范围内使用以唯一标识一个更改的逻辑时钟,以及一个
副本 ID 它用于唯一标识发生更改的数据存储。当首次创建项目时,创建版本与更新版本相同。对该项目的后续更新修改的只是更新版本。
必须至少在项目级别上跟踪所有的更改。换句话说,每个项目必须具备独立的版本。 在某些情况中需要更大力度的跟踪以减少潜在的数据冲突(两位用户在不同的副本上更新相同的项目)。这种方法的弊端在于它增加了需要存储的更改跟踪信息量。
两种主要的版本实现方式是:
内联跟踪:在这种方法中,项目的更改跟踪信息在做出更改时更新。以数据库为例,可能会使用触发器在更新行之后立即更新更改跟踪表。
异步跟踪:在这种方法中,将运行外部进程来扫描更改。发现的任何更新将添加到版本信息当中。该进程可能是定期执行进程的一部分,或者它可能在同步之前执行。该进程通常用于当没有内部机制能够在项目更新时自动更新版本信息的情况中(例如,无法在更新流程中增加版本更新逻辑)。检查更改的常用方式是存储项目的状态,并将存储的状态与项目当前状态进行比较。例如,可检查从上次同步起,最后写入时间或文件大小是否发生变化。
知识: 知识是副本能够感知的数据更改的简约表述。知识的目的在于使同步更加有效,因为它有助于限制在副本之间发送的信息量。当版本信息更新时,用于数据存储的知识也随之更新。提供程序使用副本知识的目的有:
枚举更改:确定另一个副本没有感知的更改。
检测冲突:确定哪项操作是在不了解彼此知识的情况下做出的。
Tom tones: 每个副本还必须为每个删除的项目维护
tom tone 信息。如果不跟踪删除信息,提供程序将无法告知某个项目(如文件)已被删除。在这种情况下,提供程序无法将更改版本信息传播至其他提供程序。Tom tone 必须包含以下信息:
全局 ID: 用于在所有副本中唯一确定 tom tone 项目的副本 ID 和滴答计数。
删除版本: 与 tom tone 项目关联的更新版本
创建版本: 最初创建项目时关联的副本 ID 和滴答计数
因为 tom tone 日志中的信息将随时间增加,所以有必要创建一个进程定期清理该存储。清理 tom tone 数据能够节省空间并且有助于改善同步性能。Microsoft Sync Framework 支持管理 tom tone 信息。
同步流程
发起同步的副本称为
源 而源所连接的副本称为
。本文接下来的部分将介绍下图所示的同步流程。对于双向同步,将执行此进程两次,第二次迭代时会交换源和目标。
目标端发起同步会话
在这一阶段将建立同步会话,从而创建了从源到提供程序的链接。
目标准备并发送知识
如前所述,每个副本都会存储其自身的知识。存储在目标端的知识将传递到源。
目标知识用于确定要发送的更改
在源端,会将刚刚收到的知识与本地项目版本进行比较,以确定目标端尚不了解的项目。值得注意的是,发送的版本并不是实际的项目,而是每个项目上次发生更改的位置摘要。
更改版本和发往目标端的源知识
当源准备好所需的更改版本列表之后,这些版本将传输到目标端
检索更改项目的本地版本并与源版本和知识进行比较
目标端使用这些版本准备源需要发送的项目列表。目标还使用该信息检测是否存在限制冲突。限制冲突是指违反了项目限制,如文件夹关系或文件系统中同名数据的位置。
检测并解决或推迟冲突
基本上,如果在两次同步期间对两个副本上的相同项目进行更改就会发生冲突。在 Microsoft Sync Framework 运行时中,当其中一个副本的更改版本不包含另一个副本更改的知识时便会检测到冲突。 将在下面的冲突示例部分中介绍了说明该检测过程如何工作的更加详细的示例。
副本可以自由实施各种策略,解决同步拓扑间发生冲突的项目。下面列举了一些常用的冲突解决策略:
源获胜: 当检测到冲突时,总是采用源副本所做的更改。
目标获胜: 总是采用目标副本所做的更改。
合并: 将源副本和目标副本所做的更改合并在一起。库存统计可能是一个您希望将两个副本的值合并(求和),而不是选取其中一个作为正确值的例子。
记录冲突: 记录或推迟冲突。
目标向源请求项目数据
在这一阶段,目标已经确定需要在源中检索的项目,并将请求发送到源。
源准备并发送项目数据
源接收到项目数据请求,并准备要传输到目标的实际数据。如果要跟踪的项目是数据库中的一行,则将发送该行。如果项目是文件夹中的文件,则将传送该文件。
项目应用到目标中
目标接收并应用项目。如果在此过程中出现任何错误(如网络断开),则该项目将被标记为异常,并在下次同步期间进行更正。从源接收的知识将添加到目标知识。
同步示例
通过使用前面介绍的同步流程,我们将实际操作一次文件同步示例,该示例将说明 Microsoft Sync Framework 如何枚举更改并最终应用项目数据。在本例中有两个副本:副本 A 和副本 B。副本 A 启动与副本 B 的同步(即副本 A 是源而副本 B 是目标)。假定我们希望同步两个副本间的文件。要跟踪的项目是文件夹中的一个文件,表示为 I
n (例如,I
3&helli )。创建新文件时 (I
) 与该文件相关联的元数据应更新如下:
滴答计数
副本 ID
滴答计数
副本 ID
如果文件再次更新,版本表应如下所示:
滴答计数
副本 ID
滴答计数
副本 ID
在上述示例中,更新滴答计数设置为 5,这是由于用于滴答计数的逻辑时钟在整个源内发挥作用,即:滴答计数 2-4 已用于副本中其他项目的更改。
例如,在下面的图例中,跟踪的副本中有两个附加的项目 I
2 和 I
3 。您可以看到,随着创建更多的项目,版本信息将变得越来越多。Microsoft Sync Framework 不要求存储以前的更新版本。它只需要了解最新的更新版本。
滴答计数
副本 ID
滴答计数
副本 ID
如果采用该副本的当前项目状态,我们可以把副本 A 的知识表示为:
副本 A 知识 = A
如前所述,知识是副本能够感知的数据更改的简约表述。在本例中,A 是分配给该副本的唯一 ID,而 5 是当前滴答计数,它使副本能够了解当前的最大变化个数。如果该副本已经与任意其他副本进行同步,则我们还将在该列表中看到这一知识。
在副本 B 上可能也有很多文件。该副本如下所示:
副本 B
滴答计数
副本 ID
滴答计数
副本 ID
副本 B 的当前知识为:
副本 B 知识 = B
此时我们选择开始在两个副本之间进行同步。副本 A 将成为源(启动同步的副本),副本 B 将成为目标。
同步过程中,目标向源发送其知识。如前所述,两个副本的知识如下:
副本 A 知识 = A
副本 B 知识 = B
源(副本 A)收到该知识并使用它来确定将哪个版本发送到目标。由于副本 B 不了解在副本 A 中的任何项目,所以它将发送所有内容。在本例中,副本 A 将包含以下版本。
副本 A 的更改批次
滴答计数
副本 ID
滴答计数
副本 ID
目标接收这些版本并对其进行枚举以确定需要从源请求哪些项目。它还使用该信息确定是否存在任何冲突(例如,在两个副本上更新了相同的文件)。
完成后,目标请求源发送它没有感知的项目。在本例中,副本 A 将发送与 I
2 和 I
目标收到这些文件并将其添加到自己的文件夹中。副本 B 的项目现在将包含从副本 A 接收到的项目。
副本 B dash; 已更新项目表
滴答计数
副本 ID
滴答计数
副本 ID
本次同步结束后,该过程将再执行一遍,这次源将成为目标而目标成为源。这使得副本 A 能够接收到在副本 B 上创建或更改的任何文件(I
104 和 I
同步完成后,两个副本上都应包含以下更新知识。
副本 A 知识 = A
副本 B 知识 = A
冲突示例
继续前面的示例,两个副本现在已经同步,并且每个项目标版本如下:
滴答计数
副本 ID
滴答计数
副本 ID
类似地,两个副本的知识如下:
副本 A 知识 = A
副本 B 知识 = A
此时,两个副本都决定更新相同的文件(项目 I
4)。
在副本 A 上,该项目标版本表更新为:
滴答计数
副本 ID
滴答计数
副本 ID
在副本 B 上,该项目标版本表更新为:
滴答计数
副本 ID
滴答计数
副本 ID
两个副本的知识也更新为:
副本 A 知识 = A
副本 B 知识 = A
此时,副本 A 启动与副本 B 的同步。跳过源向目标发送项目版本和知识这一步,为项目 I
2 执行下列步骤。
副本 B 看到项目 I
2 新更改,其为:
滴答计数
副本 ID
副本 B 查看从副本 A 收到的知识(A6、B4)并确定副本 A 不了解由副本 B 对相同项目所做的更改:
滴答计数
副本 ID
将检测到冲突并传给应用程序或提供程序进行处理。
如前所述,应用程序能够选择如何处理冲突或延后处理。如果冲突延后处理,则在其解决之前它将在每次同步时重复出现。一旦冲突得到解决,则下一次同步时,原始副本将接收更新后的值。
Microsoft Sync Framework 通过预创建提供程序或编写新的自定义提供程序,包含将应用程序集成到离线或基于协作网络所需的所有组件。无论采用的是哪种网络或设备类型,提供程序均使任何数据源能够参与数据同步。
在本文档中,我们已经讨论了 Microsoft Sync Framework 包含的主要组件。我们可以在文档中看到许多示例,这些示例说明了如何在 Microsoft Sync Framework 中使用知识以有效解决数据存储间交换信息的问题。最后,我们看到 Microsoft Sync Framework 启用了冲突检测,并且允许应用程序或提供程序通过各种机制有效解决冲突。
通过使用该框架,我们构建了一种同步基础,它能够扩展到任何设备上使用任何网络拓扑的任何数据存储。我们可以轻松地集成完全不同的数据源以形成对等网络,甚至在不可能进行构架更改的位置存储数据。
最终,Microsoft Sync Framework 为同步提供了一个高度嵌入式且可扩展的平台。
要了解更多信息或获取 Microsoft Sync Framework CTP1 SDK 副本,请访问 。
作者:
出处:
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出作者名称及原文连接,否则保留追究法律责任的权利。 绿色通道:
posted on 2009-03-31 10:19
阅读(3873)
评论:
2078634
2009-05-15 15:39 | 我也在学习做这些类似的工作
能向你请教一下吗
我们项目实现的思路
2009-05-15 15:40 | 希望你的文章会对我有很大的启发
2009-05-21 13:27 | --引用--------------------------------------------------
jhtchina: 我也在学习做这些类似的工作
能向你请教一下吗
a href=http://www.c logs.com/jhtchina/articles/1420312.html target=_newhttp://www.c logs.com/jhtchina/articles/1420312.html/a
我们项目实现的思路
--------------------------------------------------------
好啊,欢迎在这里留言,或者加我们MSN,进行交流。
2011-04-23 22:49 | 进来看看 呵呵
注册用户登录后才能发表评论,请
最新IT新闻
最新知识库文章
简洁版式:
网站导航:
aliang128 # m .com
Specialties
Microsoft Sync Framework
Sync Service for ADO.NET(OCS), Microsoft File Synchronization,
Windows Mobile, SQL Server Compact, .NET Compact Framework, Smart Client, Web Service, SQL Server 昵称:
园龄:
粉丝:
关注:
2009年3月
搜索 常用链接
我参与的团队
我的标签
随笔分类
随笔档案
最新评论
进来看看 呵呵
--五味子
支持服务端数据源为Oracle吗?我在添加本地服务库缓存后,配置界面只有sqlserver的for .net provider,找不到oracle的,但是在服务器资源管理器中可以添加oracle的数据...
--sharezone
在wince上用CompactFormatter序列化一个对象,写入到网络工作流当中,传输到服务端(pc),接受到数据后用CompactFormatter再将将byte[]反序列化,但是总是不成功(数...
--新星
Jeffrey Zhao
Release To Web
Release To M....
--尘尘
高海东
恩,是的,已经发布了不少天了。。。呵呵
--梁一鸣
阅读排行榜
评论排行榜
Powered by:
模板提供:
Copyright 2011 梁一鸣什么是‘Runtime初始化获取用户文件夹错误’
回答:1 浏览:2114 提问时间:
2008-10-13 11:24
开机后有提示,***后的游戏软件打不开
条评论...
最佳***
此***由管理员代为选出
我知道VISTA下***搜狗输入法3.2会出现这个提示
要不就用优化大师清理一下垃圾文件
然后开始/运行/输入msconfig
在启动项里把不用的都禁止掉
也可能是用户的配置文件有问题,试着使用系统还原还原一下,或者另外开一个用户帐户.
2008-10-14 12:18
提问者对***的评价:
条评论...
欢迎登录知识人
会员名:
密 码:
记住我的登录状态
·新浪会员请直接登录
2011 Sina.com“runtime error 216 at 0F643826”是什么意思
“runtime error 216 at 0F643826”是什么意思
Freitag, 17. Juli 2009 06:04 电脑运行过程中经常出现windows explorer重新启动,然后跳出提示“
runtime error 216 at 0F643826”。点确定后又正常了。这是怎么搞的啊
caijuren Antworten
Freitag, 17. Juli 2009 06:28 你可以尝试以下操作:
、依次打开,开始菜单-运行-输入
regedit
-点确定-进入注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks
下,应该只有一个正常的键值
{AEB6717E-7E19-11d0-97EE-00C04FD91972},
将其他的删除。
、开始菜单-运行-输入
回车在命令提示符下输入:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
然后重启电脑
此為上述文字的
原始鏈接
, 在該帖子中未見與你同名的樓主回覆其是否有效, 同時該解答并沒有說明適用的 Windows 版本,
請慎用
“runtime error 216 at 0F643826”是什么意思
此問題通常與在 Windows Explorer 加入自己功能的軟件有關,判斷特徵: 在Windows Explorer 右鍵菜單或工具欄添加自己的項目, 像 納米機器人, RayFile 這些軟件的較早版本會於 Windows Explorer 有衝突(僅舉例說明, 并不表明這類軟件新版本仍然存在問題).一旦該軟件出現狀況,是會造成你的問題.
如果之前使用正常, 但升級到 Windows Vista Service Pack 2 後出現問題, 則是因為該軟件與 SP2 存在兼容性問題有關. 當然如果你在使用第三方主題, 當第三方主題出錯也會間接影響到 Windows Explorer 的正常使用
如果你使用第三方清理軟件, 也可能影響到這些軟件的正常運行, 進而導致 Windows Explorer 出錯.
建議你先嘗試, Windows Vista 乾淨啟動, 進行查找問題原因. 建議首先暫時禁用第三方軟件的啟動項.
如何解决Windows Vista 中执行干净启动的问题
Folding@Home
Bearbeitet
Freitag, 17. Juli 2009 06:33
Bearbeitet
Freitag, 17. Juli 2009 06:51
Als Antwort markiert
So tag, 19. Juli 2009 06:11
Bearbeitet
Freitag, 17. Juli 2009 06:55
Bearbeitet
Freitag, 17. Juli 2009 06:51
Bearbeitet
Freitag, 17. Juli 2009 06:45
Bearbeitet
Freitag, 17. Juli 2009 06:35 Alle Antworten
Freitag, 17. Juli 2009 06:16 你可以尝试以下操作:
、依次打开,开始菜单-运行-输入
regedit
-点确定-进入注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks
下,应该只有一个正常的键值
{AEB6717E-7E19-11d0-97EE-00C04FD91972},
将其他的删除。
、开始菜单-运行-输入
回车在命令提示符下输入:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
然后重启电脑
Freitag, 17. Juli 2009 06:28 你可以尝试以下操作:
、依次打开,开始菜单-运行-输入
regedit
-点确定-进入注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks
下,应该只有一个正常的键值
{AEB6717E-7E19-11d0-97EE-00C04FD91972},
将其他的删除。
、开始菜单-运行-输入
回车在命令提示符下输入:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
然后重启电脑
此為上述文字的
原始鏈接
, 在該帖子中未見與你同名的樓主回覆其是否有效, 同時該解答并沒有說明適用的 Windows 版本,
請慎用
“runtime error 216 at 0F643826”是什么意思
此問題通常與在 Windows Explorer 加入自己功能的軟件有關,判斷特徵: 在Windows Explorer 右鍵菜單或工具欄添加自己的項目, 像 納米機器人, RayFile 這些軟件的較早版本會於 Windows Explorer 有衝突(僅舉例說明, 并不表明這類軟件新版本仍然存在問題).一旦該軟件出現狀況,是會造成你的問題.
如果之前使用正常, 但升級到 Windows Vista Service Pack 2 後出現問題, 則是因為該軟件與 SP2 存在兼容性問題有關. 當然如果你在使用第三方主題, 當第三方主題出錯也會間接影響到 Windows Explorer 的正常使用
如果你使用第三方清理軟件, 也可能影響到這些軟件的正常運行, 進而導致 Windows Explorer 出錯.
建議你先嘗試, Windows Vista 乾淨啟動, 進行查找問題原因. 建議首先暫時禁用第三方軟件的啟動項.
如何解决Windows Vista 中执行干净启动的问题
Folding@Home
Bearbeitet
Freitag, 17. Juli 2009 06:33
Bearbeitet
Freitag, 17. Juli 2009 06:51
Als Antwort markiert
So tag, 19. Juli 2009 06:11
Bearbeitet
Freitag, 17. Juli 2009 06:55
Bearbeitet
Freitag, 17. Juli 2009 06:51
Bearbeitet
Freitag, 17. Juli 2009 06:45
Bearbeitet
Freitag, 17. Juli 2009 06:35 Freitag, 17. Juli 2009 06:36 另外也請你在應用程序日誌中, 查找 Windows Explorer 出錯前後的日誌記錄, 特別是級別為警告和錯誤的日誌.
Folding@Home Freitag, 17. Juli 2009 07:09 1 、依次打开,开始菜单-运行-输入regedit-点确定-进入注册表, 在:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks 下,应该只有一个正常的键值{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其他的删除。
經過我在本機(Windows XP)的驗證, 發現此方法存在危險!
因為我的筆記本不在身邊, 故只能用 Windows XP 做測試.
在我機器的注冊表有兩個鍵值, 這兩個鍵值都是安全的.
一個是 {AEB6717E-7E19-11d0-97EE-00C04FD91972} URL 执行挂钩, 引用的系統文件 shell32.dll, 而另一個 {B5A7F190-DDA6-4420-B3BA-52453494E6CD} 則是由現在的 Microsoft 首席軟件架構師 Ray Ozzie 先生主導開發的軟件 Groove 的一個附加組件.
Ray Ozzie: Chief Software Architect
相關注冊表截圖:
2 、开始菜单-运行-输入cmd 回车在命令提示符下输入:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
然后重启电脑
至於該方法的第二個步驟, 其作用是注冊所有 system32 的 DLL 文件, 此步驟在某種程度上來說與重裝系統無異.
綜上所述, 那個解答是不安全的不嚴謹的, 不建議使用!
Folding@Home
Bearbeitet
Freitag, 17. Juli 2009 07:55
Bearbeitet
Freitag, 17. Juli 2009 08:06
Bearbeitet
Freitag, 17. Juli 2009 07:21
Bearbeitet
Freitag, 17. Juli 2009 07:58
Bearbeitet
Freitag, 17. Juli 2009 07:57
Bearbeitet
Freitag, 17. Juli 2009 07:19 Freitag, 17. Juli 2009 07:32 1 、依次打开,开始菜单-运行-输入regedit-点确定-进入注册表, 在:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks 下,应该只有一个正常的键值{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其他的删除。
對於這個方法, 也不是完全沒有可取之處.
你可以在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks 對中所有的 {????}, 在注冊表的這個位置
HKEY_LOCAL_MACHINE\SOFTWARE\Cla es\CLSID\
進行搜索, 查看其具體引用的文件是什麽, 進而判斷其屬於哪一個軟件.
例如:
B5A7F190-DDA6-4420-B3BA-52453494E6CD 引用的文件為
C:\Program Files\Microsoft Office\Office12\GrooveShellExte io .dll
保存在 HKEY_LOCAL_MACHINE\SOFTWARE\Cla es\CLSID\{B5A7F190-DDA6-4420-B3BA-52453494E6CD}\I rocServer32 的默認鍵值
如果從中找到一個你懷疑可能導致此問題的軟件後, 請通過 msconfig 對其啟動項進行臨時禁用,和臨時對其在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks 的鍵值重命名, 也可在導出備份該注冊表項後, 刪除該鍵值,如果其有服務也建議臨時禁用, 重新啟動計算機.
如果經過這些操作 Windows Explorer 不再出錯, 那么就可以在 控制面板 - 程序 - 卸載程序中將其卸載, 最後在視你的需要看是否重新安裝.
如不是, 則手動撤銷之前所進行的操作. 當然你可以在進行驗證更改前手動建立還原點, 以簡化撤銷操作步驟.
如果要卸載該軟件, 需要先恢復其在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks 的鍵值, 以避免卸載不完全后卸載失敗情況的發生.
Folding@Home
Bearbeitet
Freitag, 17. Juli 2009 08:48
Bearbeitet
Freitag, 17. Juli 2009 08:50
Bearbeitet
Freitag, 17. Juli 2009 09:18
Bearbeitet
Freitag, 17. Juli 2009 09:14
Bearbeitet
Freitag, 17. Juli 2009 08:46 Freitag, 17. Juli 2009 14:13 我的 Windows Vista 注冊表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\ShellExecuteHooks 不存在任何鍵值.
注冊表截圖:
Folding@Home So tag, 19. Juli 2009 02:22 建議樓主也可以檢查注冊表項
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\ShellExecuteHooks , 如果有鍵值存在的話, 按照之前所貼方法進行排查.
建議:
先用受限用戶身份運行命令提示符執行 regedit, 以查找
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\ShellExecuteHooks 的鍵值, 以受限用戶運行注冊表編輯器(regedit) 訪問
HKEY_LOCAL_MACHINE 的子項是安全的, 因為只有讀權限. 如果找到在該項中找到某個可疑鍵值, 再關閉注冊表編輯器(regedit), 然後以管理員身份運行命令提示字元并執行 regedit, 對那個鍵值進行編輯.
這種操作雖然繁瑣, 但能在很大程度上避免誤操作.
Folding@Home 2011
Microsoft Corporation. Alle Rechte vorbehalten.