在为子业务部门的用户初始化应用程序时,Microsoft Dynamics CRM 应用程序显示错误消息。

本文提供了解决方案,解决的是首次将应用连接到 Microsoft Dynamics CRM 组织时出现的错误。

适用于: Microsoft Dynamics CRM 2013
原始 KB 数: 2899860

现象

安装 Microsoft Dynamics CRM 平板电脑应用后,你最初能够将应用连接到 Microsoft Dynamics CRM 组织。 在一段时间后或重新打开应用后,会看到以下错误:

“很抱歉,初始化应用时出现问题。 请重试,或重启应用”

点击 “后退 ”按钮或尝试重新打开应用时,继续看到相同的错误。 在再次遇到该错误之前,您可能会看到登录页。 此问题仅适用于具有从父业务部门继承的安全角色的子业务部门中的用户。

原因

发生此错误的原因是子业务单元中继承的安全角色缺少已修改日期值。 如果在子业务部门级别打开安全角色,然后从“文件”菜单中选择“属性”,则会看到“上次修改日期”未显示。

Microsoft知道此问题,并计划在将来的更新中提供修补程序。 此问题已在 Microsoft Dynamics CRM Online 中解决,并计划在 Microsoft Dynamics CRM 2013 的本地部署版本中进行修复。 同时,可以应用“解决方案”部分中的解决方法。

决议

若要解决此问题,请按照以下步骤更新继承的安全角色,以包括修改日期:

  1. 使用具有系统管理员安全角色的用户登录到 Microsoft Dynamics CRM Web 应用程序。

  2. 在导航栏中,选择Microsoft Dynamics CRM,然后选择“设置”。

  3. 从导航栏中选择“设置”,然后选择“管理”。

  4. 打开在父事业单位级别为遇到此问题的用户分配的安全角色。

  5. 不进行任何更改,请选择“ 保存 ”按钮。

  6. 选择“ 文件 ”菜单,然后选择“ 属性”。

  7. 验证上次修改日期是否已更新。

  8. 关闭安全角色的窗口。

    注意

    在“安全角色”子区域中,可以选择 “业务部门 ”下拉列表以显示每个业务部门的角色。 如果在子业务部门级别检查角色,应会看到“上次修改日期”现在已填充。

  9. 对于满足此问题的任何其他安全角色,重复步骤 4-8。

  10. 验证问题是否已解决。

注意

由于无法修改默认的系统管理员角色,因此目前没有针对具有系统管理员角色的子业务部门中的用户提供解决方法。 可以修改复制的系统管理员角色版本(使用复制角色功能创建)。

详细信息

当您进行追踪时,系统会记录以下错误:

错误消息:System.NullReferenceException:未将对象引用设置为对象的实例。

at Microsoft.Crm.Application.WebServices.ApplicationMetadataService.<>c__DisplayClass30。<UserRolesChanged>b__2d(实体角色)

at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 谓词)

在 Microsoft.Crm.Application.WebServices.ApplicationMetadataService.UserRolesChanged(Guid[] clientUserRoles,DateTime syncTime,ExecutionContext context)

at Microsoft.Crm.Application.WebServices.ApplicationMetadataService.RetrieveUserContext(UserContextRetrieveRequest userContextRetrieveRequest)