症状
假设你使用适用于 Microsoft Office Outlook 的 Microsoft Dynamics CRM 2011 客户端,并且该文件夹重定向已在客户端上启用。 在此情况下,当你尝试跟踪项目或运行 与 CRM 同步 函数时,你将收到类似于以下内容的错误消息:
[2011-09-07 11:11: 08.517]过程: OUTLOOK |组织: 00000000-0000-0000-0000-000000000000 |线程: 24 |类别:例外 |用户: 00000000-0000-0000-0000-000000000000 |级别:错误 |CrmException..ctorat CrmException..CrmException 上的 ctor (字符串消息、异常 innerException、Int32 errorCode、布尔 isFlowControlException)。CrmSqlCeConnection 上的 ctor (字符串消息,异常内部异常)。 <在 CatchClause (TryFilter (操作正文、谓词 "1 筛选器,操作" 1 IdMappingTable)处 b__2>打开 MarkAllItemsNotVisited () >Crm 异常:消息: SQL CE 数据库文件正由其他进程使用,错误代码:-2147220970 存在文件共享冲突。 其他进程可能正在使用该文件。 [ \\<server>\C$\<user>\Microsoft\MSCRM\Client\OutlookSyncCache.sdf ].
原因
出现此问题的原因是 Microsoft SQL Server 2000 Windows CE 版本3.5 (SQL Server CE 3.5)中的限制。
解决方案
提示 应用了 Outlook 更新汇总15的 Microsoft Dynamics CRM 后,它将自动升级到 SQL CE 4.0。 因此,下面的解决方案仅在更新汇总14和更低的情况下才是必需的。 若要在应用程序数据文件夹位于远程共享位置运行 Microsoft Dynamics CRM 2011,请按照下列步骤操作:
-
安装 SQL Server CE 4.0。 若要执行此操作,请访问以下 Microsoft 网站:
http://www.microsoft.com/download/en/details.aspx?id=17876注意
-
此步骤需要提升的权限。
-
在 SQL Server CE 4.0 中,64位客户端无需安装32位版本。
-
-
在位于程序 Files\MSCRM\Client 文件夹中的 CrmClient {14B13B7A-CA08-40bd-AC60-8C45367E807C} .config 文件中的 configuration 元素下添加以下 XML 代码:
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845dcd8080cc91" culture="neutral" /> <bindingRedirect oldVersion="3.5.1.0" newVersion="4.0.0.0"/> </dependentAssembly> </assemblyBinding></runtime>
注意
-
此步骤需要提升的权限。
-
请确保在 </configuration> 标记之前添加此代码。
-
-
此外,配置向导还会调用第二个配置文件。 该文件命名为 ConfigWizard,并且该文件位于 C:\Program Files\Microsoft Dynamics CRM\Client\ConfigWizard 文件夹中,其内容是:
<configuration> <startup> <supportedRuntime version="v4.0.30319" /> </startup> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath="..\bin"/> <dependentAssembly> <assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845dcd8080cc91" culture="neutral" /> <bindingRedirect oldVersion="3.5.1.0" newVersion="4.0.0.0"/> </dependentAssembly> </assemblyBinding> </runtime> <system.net> <defaultProxy useDefaultCredentials="true" /> </system.net></configuration>
-
删除 % localappdata% 和 % appdata% 文件夹中的所有 .sdf 文件。 有关详细信息,请参阅 "CRM 中的数据库列表" 部分。注意 在 SQL Server CE 3.5 中创建的 .SDF 文件与 SQL Server CE 4.0 不兼容。
警告
从 SQL Server CE 3.5 升级到 SQL Server CE 4.0 后,首次运行 Microsoft Dynamics CRM 时可能会遇到性能下降。 之所以会出现此行为,是因为 Microsoft Dynamics CRM 必须重新创建所有缓存。 某些缓存受收件箱大小的影响。
验证步骤
若要验证是否正确应用了解决方案,请按照下列步骤操作:
-
在 "解决方案" 部分中执行上述所有步骤后,启动 Outlook。
-
请确保 Microsoft Dynamics CRM 插件正确启动。
-
启动 "流程资源管理器" 工具。 若要下载流程资源管理器,请访问以下 Microsoft 网站:
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
-
找到 " Outlook .exe " 进程,然后双击它。
-
选择 " .Net 程序集 " 选项卡,然后展开 " AppDomain: SharedDomain " (如果尚未展开)。
-
在列表中查找 SqlServerCe 。 请确保路径包含以下版本的 SQL Server CE: C:\windows\assembly\ GAC_MSIL \System.Data.SqlServerCe\4.0。注意 如果路径包含 SQL Server CE 3.5.1.0,则程序集重定向将不起作用。
CRM 中的数据库列表
-
%LocalAppData%\Microsoft\MSCRM\Client
-
CrmCache注意此文件包含非元数据平台缓存。
-
{Guid} [true | false] .Sdf注意 此文件包含 MAPI 存储内部存储。
注意 可能有多个文件可供脱机使用和联机使用。
-
-
%AppData%\Microsoft\MSCRM\Client
-
EmailCache注意此文件包含 CRM 和 MAPI 项目之间的映射。
-
OutlookSyncCache 注意 此文件包含同步的内部状态。
-
为了在 Microsoft Dynamics CRM 中使用文件夹重定向,必须使用通用命名约定(UNC)路径。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
更多信息
有关软件更新术语的更多信息,请单击下面的文章编号以查看 Microsoft 知识库中的相应文章:
824684 用于描述 Microsoft 软件更新的标准术语的说明有关 Microsoft Business 解决方案 CRM 软件修补程序和更新程序包术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
887283 Microsoft Business 解决方案 CRM 软件修补程序和更新程序包命名标准