分享方式:


Microsoft Dynamics CRM 2013 的 SQL Server 2012 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 Reporting Extensions 的 SQL Server Reporting Services Server 中觀察到下列錯誤:

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

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

原因

在設定 Microsoft Dynamics CRM 的 SQL Server 2012 AlwaysOn 故障轉移期間,和 MSCRM_CONFIG 連接字串 的 MultiSubnetFailover 屬性ConfigDB會設定為 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'