SQL Server 2012 Microsoft Dynamics CRM 2013 的 AlwaysOn 故障轉移設定可能會導致 CRM 報告失敗並出現錯誤訊息

本文將協助解決在設定 SQL Server 2012 AlwaysOn 故障轉移之後,可能會收到 Microsoft Dynamics CRM 報表的錯誤訊息問題。

適用於:Microsoft Dynamics CRM 2011 Microsoft Dynamics CRM 2013
原始 KB 編號: 2991907

徵狀

為 Microsoft Dynamics CRM 2013 設定 SQL Server 2012 AlwaysOn 故障轉移之後,報告可能會失敗,並出現下列錯誤訊息:

報表處理期間發生錯誤。 (rsProcessingAborted)

您也可以在 Microsoft Dynamics CRM Server 和安裝 CRM 報告延伸模組的 SQL Server Reporting Services 伺服器上的 事件檢視器 應用程式記錄中觀察到下列錯誤:

Web 服務要求 SetDataSourceCredentials 至報表伺服器 <ReportServerURL> 失敗,發生 SoapException。 錯誤:報表處理期間發生錯誤。 (rsProcessingAborted)

無法開啟與資料庫的連線。 錯誤:不支援使用 MultiSubnetFailover 連線選項連線到具名 SQL Server 實例。

原因

在 Microsoft Dynamics CRM 的 SQL Server 2012 AlwaysOn 故障轉移設定期間,和連接字串的 MultiSubnetFailover 屬性已設定為 ConfigDBMSCRM_CONFIG 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. 根據 [設定 SQL Server AlwaysOn 故障轉移的組態和組織資料庫,更新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'