SQL Server 2012 Microsoft Dynamics CRM 2013 的 AlwaysOn 故障转移配置可能会导致 CRM 报告失败并显示错误消息

本文将帮助解决配置 SQL Server 2012 AlwaysOn 故障转移后,Microsoft Dynamics CRM报告可能收到的错误消息问题。

适用于:2011 Microsoft Dynamics CRM、Microsoft Dynamics CRM 2013
原始 KB 编号: 2991907

症状

为 Microsoft Dynamics CRM 2013 配置 SQL Server 2012 AlwaysOn 故障转移后,报告可能会失败并显示以下错误消息:

在报表处理过程中发生错误。 (rsProcessingAborted)

在安装了 CRM 报告扩展的 Microsoft Dynamics CRM 服务器和 SQL Server Reporting Services 服务器上事件查看器应用程序日志中,也可能会观察到以下错误:

Web 服务请求 SetDataSourceCredentials 到报表服务器 <ReportServerURL> 失败,并显示 SoapException。 错误:在报表处理过程中发生错误。 (rsProcessingAborted)

无法打开到数据库的连接。 错误:不支持使用 MultiSubnetFailover 连接选项连接到命名的 SQL Server 实例。

原因

在配置 Microsoft Dynamics CRM SQL Server 2012 AlwaysOn 故障转移期间,和MSCRM_CONFIG连接字符串的 ConfigDB MultiSubnetFailover 属性设置为 True。 此外,在连接字符串的数据源属性中定义了命名实例。

示例连接字符串:

Data Source=MSCRMAG\NamedInstance;Initial Catalog= MSCRM_CONFIG;IntegratedSecurity=SSPI;multisubnetfailover=true

解决方案

若要解决此问题,请将命名实例配置为使用特定的 TCP 端口,然后更新 ConfigDBMSCRM_CONFIG 连接字符串以包括命名实例的端口号。

  1. 将 SQL 2012 Server 配置为侦听命名实例的特定 TCP 端口。 有关执行此操作的说明,请参阅将服务器配置为侦听特定 TCP 端口 (SQL Server 配置管理器)

  2. 根据设置 alwaysOn 故障转移SQL Server配置和组织数据库,更新ConfigDB注册表项和MSCRM_CONFIG数据库以包含命名实例的端口号。

    注册表项的示例 ConfigDB

    Data Source=AG_Listener_Name,Port_Number;Initial Catalog= MSCRM_CONFIG;Integrated Security=SSPI;multisubnetfailover=true

    ConnectionString 属性的示例 MSCRM_Config

    'Provider=SQLOLEDB;Data Source=AG_Listener_Name,Port_Number;Initial Catalog=OrganizationName_MSCRM;Integrated Security=SSPI;multisubnetfailover=true' where DatabaseName = 'OrganizationName_MSCRM'