尝试在 Microsoft Dynamics CRM Laptop Client for Outlook 中进行脱机工作时收到错误消息:"在执行 saInsert 操作的过程中无法移动实体 [实体名] 的数据,countRows=[计数]。请与您的系统管理员联系以获得帮助"

文章翻译 文章翻译
文章编号: 916165 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状

尝试在 Microsoft Dynamics CRM Laptop Client for Microsoft Office Outlook 中进行脱机工作时可能会收到以下错误消息:
“在执行 saInsert 操作的过程中无法移动实体 实体名 的数据,countRows=计数。请与您的系统管理员联系以获得帮助。
注意:在此消息中,实体名是表示实际实体名称的占位符,计数是表示实际行数的占位符。

事件日志中记录了与以下错误消息类似的错误消息:
事件类型:错误
事件来源:MSCRMOfflineSync
事件类别:无
事件 ID: 6000
描述:脱机同步过程中出错。请尝试再次脱机,或者重新启动 Microsoft Outlook。对实体 <Case> 执行插入操作期间 GetBCPFile() 失败,batchRows=0 出现异常 System.Net.WebException:远程服务器返回了一个错误:(401) 未经授权。---> System.ComponentModel.Win32Exception:The logon attempt failed at System.Net.NTAuthentication.GetOutgoingBlob(Byte[] incomingBlob, Boolean& handshakeComplete) at System.Net.NTAuthentication.GetOutgoingBlob(String incomingBlob, Boolean& handshakeComplete) at System.Net.NegotiateClient.DoAuthenticate(String challenge, WebRequest webRequest, ICredentials credentials, Boolean preAuthenticate) at System.Net.NegotiateClient.DoAuthenticate(String challenge, WebRequest webRequest, ICredentials credentials, Boolean preAuthenticate) at System.Net.NegotiateClient.Authenticate(String challenge, WebRequest webRequest, ICredentials credentials) at System.Net.AuthenticationManager.Authenticate(String challenge, WebRequest request, ICredentials credentials) at System.Net.AuthenticationState.AttemptAuthenticate(HttpWebRequest httpWebRequest, ICredentials authInfo) --- End of inner exception stack trace --- at System.Net.HttpWebRequest.CheckFinalStatus() at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.HttpWebRequest.GetResponse() at Microsoft.Crm.Application.Outlook.OfflineSync.BcpTransferDataProvider.GetBCPFile(String entityName, Action action, Int32 batchSize).
有关详细信息,请参阅位于 http://support.microsoft.com 的“帮助和支持中心”。
在事件日志中会记录与以下消息类似的警告消息:
事件类型:警告
事件来源:MSCRMOfflineSync
事件类别:无
事件 ID: 6001
描述:脱机同步过程中返回了意外的结果。#temp<EntityBase> 插入计数 54!=27(请求的插入计数)。
有关详细信息,请参阅位于 http://support.microsoft.com 的“帮助和支持中心”。
注意:在此消息中,EntityBase 是表示实体的实际表名称的占位符。

原因

在下列一种或多种情况下会出现此问题:
  • Microsoft CRM Laptop Client for Outlook 无权访问 BCP 文件夹。
  • Microsoft CRM Laptop Client for Outlook 上的 Microsoft XML (MSXML) 的版本不正确。
  • Microsoft CRM Laptop Client for Outlook 上的脱机数据筛选器不正确。
  • Microsoft CRM 服务器安装已损坏。
  • 在 Microsoft CRM 网站上运行应用程序池的用户帐户无法访问 Microsoft CRM 服务器上的脱机数据文件夹。
  • Microsoft SQL Server 数据库被移动到新的服务器。Microsoft CRM 服务器上的 Microsoft CRM System DSN ODBC 数据源仍指向先前运行 SQL Server 的服务器。
  • 运行 SQL Server 且包含 MSCRM 数据库的计算机向脱机数据库发送多于往常的记录。
  • 在 Microsoft CRM 服务器上的 Boot.ini 文件中添加了 /3GB 开关。此问题导致服务器在尝试执行 BCP 进程时内存不足。
  • 未安装 Microsoft Data Access Components (MDAC) 2.8 Service Pack 1 (SP1)。

解决方案

要解决此问题,请使用下列一种或多种方法。

方法 1

向 Microsoft CRM Laptop Client for Outlook 用户授予对 BCP 文件夹的访问权限。为此,请按照下列步骤操作:
  1. 登录 Microsoft CRM Laptop Client for Outlook 所在的计算机,然后找到 BCP 文件夹。通常,BCP 文件夹位于客户端计算机的以下路径中:
    C:\Documents and Settings\UserName\Application Data\Microsoft\MSCRM\BCP
    注意
    • 在基于 Windows Vista 的计算机上,BCP 文件夹位于以下路径中:
      C:\Users\用户名\AppData\Roaming\Microsoft\MSCRM\BCP
    • 在此步骤中,用户名是表示实际用户名的占位符。
  2. 找到并右键单击该文件夹。然后单击“属性”
  3. 单击“安全”选项卡。
  4. 从“组或用户名” 列表中,选择“Microsoft CRM Laptop Client for Outlook 用户”。
  5. 在“用户名权限”列表中,确保已选中“完全控制”行中的“允许”复选框。然后单击“确定”

    注意:在此步骤中,用户名是表示实际用户名的占位符。

方法 2

确保客户端计算机上 Msxml4.dll 文件的版本不低于 4.20.9828。为此,请按照下列步骤操作:
  1. 找到 system32 文件夹。通常,此文件夹位于以下路径中:

    C:\WINDOWS\system32\
  2. 找到并右键单击 Msxml4.dll 文件,然后单击“属性”。单击“版本”选项卡。
  3. 验证“文件版本”的值是否不低于 4.20.9828。如果该值低于此版本,请转到步骤 4。
  4. 如果 Msxml4.dll 文件的版本低于 4.20.9828,则必须更新此文件。有关如何获得更新文件的详细信息,请访问以下 Microsoft 网站:
    http://support.microsoft.com/kb/887606/zh-cn
    注意
    • 也可以从客户端安装 CD 中获取 Msxml4.dll 文件。通常,Msxml4sp2-kb887606-x86-CHS.exe 文件位于以下路径中:

      \Client\MSXML\KB887606\
    • 此修补程序不要求您重新启动计算机。

方法 3

删除所有脱机数据筛选器,然后在客户端计算机上逐个添加并同步这些筛选器。若要删除脱机数据筛选器,请按照下列步骤操作:
  1. 在 Microsoft CRM Laptop Client for Outlook 中,单击“CRM”菜单上的“本地数据”
  2. 在“本地数据”对话框中,突出显示所有筛选器,单击“停用”,然后单击“确定”
若要添加并同步筛选器,请按照下列步骤操作:
  1. 在“CRM”菜单上,单击“本地数据”
  2. 单击“非活动数据组”选项卡。
  3. 选择其中一个筛选器。然后单击“激活”
  4. 单击“确定”
  5. 单击“脱机”以启动同步过程。然后单击“联机”以完成同步过程。
  6. 对每个停用的筛选器重复步骤 3 到步骤 5。
  7. 如果您能找到导致出现问题的特定过滤器,请确保该过滤器未使用“Parent Downloaded = True”指令。我们不建议使用此指令。

方法 4

在 Microsoft CRM 服务器上运行修复进程。为此,请按照下列步骤操作:
  1. 登录 Microsoft CRM 服务器。依次单击“开始”、“控制面板”和“添加或删除程序”
  2. 单击“Microsoft CRM 服务器”。然后单击“更改/删除”
  3. 单击“修复”选项。然后单击“下一步”以启动 Microsoft CRM 3.0 服务器安装向导。

方法 5

确保在 Microsoft CRM 网站上运行应用程序池的用户帐户可以访问 OfflineData 文件夹。此文件夹中存储了客户端从运行 SQL Server 的服务器中获取的 BCP(大容量复制进程)数据文件。若要确保 OfflineData 文件夹可被访问,请按照下列步骤操作:
  1. 确定哪个帐户正在运行应用程序池。为此,请按照下列步骤操作:
    1. 登录 Microsoft CRM 服务器。
    2. 依次单击“开始”、“管理工具”和“Internet Information Services (IIS) 管理器”
    3. 依次展开本地计算机名和“应用程序池”,右键单击“CRMAppPool”,然后单击“属性”
    4. 单击“标识”选项卡。
    5. 按照以下原则验证权限:

      如果已选择“预定义”选项,则 NetworkService 和 LocalSystem 帐户均由 DomainName\ComputerName$ 帐户表示。因此,当您必须验证 NetworkService 帐户或 LocalSystem 帐户的权限时,也必须验证 DomainName\ComputerName$ 帐户的权限。

      如果已选择“可配置”选项,则必须验证指定的用户帐户的权限。

      注意:如果已选择“预定义”选项,则在步骤 5 中将 DomainName\ComputerName$ 帐户作为用户使用。如果已选择“可配置”选项,则在步骤 5 中将指定的用户帐户作为用户使用。
  2. 在 Microsoft CRM 服务器上,找到以下文件夹:

    Drive:\Program Files\Microsoft CRM\Server\OfflineData\

    注意:在此步骤中,Drive 是在其上安装 Microsoft CRM 的实际驱动器的占位符。
  3. 右键单击该文件夹。然后单击“属性”
  4. 单击“安全”选项卡。
  5. 从“组或用户名”列表中,选择在步骤 1 中标识的用户。
  6. 在“用户名权限”列表中,确保已选中“完全控制”行中的“允许”复选框。然后单击“确定”

    注意:在此步骤中,用户名是表示实际用户名的占位符。

方法 6

注意 方法 6 仅适用于 Microsoft Dynamics CRM 3.0。此方法不适用于 Microsoft Dynamics CRM 4.0。

修改 Microsoft CRM 服务器上的 Microsoft CRM System DSN ODBC 数据源以指向运行 SQL Server 的新服务器。为此,请按照下列步骤操作:
  1. 单击“开始”,指向“管理工具”,然后单击“数据源 (ODBC)”
  2. 在“ODBC 数据源管理器”对话框中,单击“系统 DSN”选项卡,单击“系统数据源中的 Microsoft CRM”列表,然后单击“配置”
  3. 在第一个“Microsoft SQL Server DSN 配置”窗口中,找到包含运行 SQL Server 的计算机的名称的“服务器”列表。单击要连接到的服务器。
  4. 单击“下一步”三次以配置数据源。
  5. 单击“完成”
  6. 在“ODBC Microsoft SQL Server 安装”窗口中,单击“测试数据源”以验证与服务器的连接。
  7. 单击“确定”两次以完成配置。
  8. 单击“确定”以关闭“ODBC 数据源管理器”对话框。

方法 7

  1. 退出 Microsoft Dynamics CRM 3.0。
  2. 依次单击“开始”和“运行”,键入 regedit,然后单击“确定”
  3. 找到并单击下面的注册表子项:
    HKEY_CURRENT_USER\Software\Microsoft\MSCRMClient
  4. 右键单击“OfflineRowsBatchSize”DWORD 值,然后单击“修改”
  5. 在“数值数据”框中,键入一个比当前值小的值(如 10 或 1),然后单击“确定”。

    注意:默认情况下,“OfflineRowsBatchSize”DWORD 值设置为“100000”
  6. 退出注册表编辑器。

方法 8

从 Microsoft CRM 服务器上的 Boot.ini 文件中删除 /3GB 开关。为使更改生效,在删除该开关后必须重新启动计算机。

方法 9

安装 MDAC 2.8 Service Pack 1。要安装 MDAC 2.8 SP1,请访问以下 Microsoft 网站:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=78cac895-efc2-4f8e-a9e0-3a1afbd5922e

方法 10

如果已向 Microsoft Dynamics CRM 服务器或运行 SQL Server 的服务器应用了 Windows 操作系统的最新更新,请重新启动受影响的服务器。

更多信息

如果您仍然遇到“症状”部分中描述的问题,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
918108 当您尝试在运行 Microsoft Dynamics CRM 3.0 的便携式客户端计算机上进行脱机工作时收到错误消息:“Failed move data for entity”(无法移动实体的数据)

参考

有关如何将 Microsoft Dynamics CRM 3.0 SQL 数据库从一台服务器移动到另一台服务器的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
917948 如何将 Microsoft Dynamics CRM 3.0 SQL 数据库从一台服务器移到同一个域中的另一台服务器上

属性

文章编号: 916165 - 最后修改: 2011年5月17日 - 修订: 9.0
这篇文章中的信息适用于:
  • Microsoft CRM client for Microsoft Office Outlook
  • Microsoft Dynamics CRM 4.0
关键字:?
kbmbscrm40no kbcrmv3c kberrmsg kbmbsmigrate kbprb kbtshoot KB916165
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com