在 Microsoft Dynamics CRM 中上傳自定義 SQL 型報表之後,就會發生報告錯誤 Microsoft Dynamics CRM

本文提供您可能會收到無法顯示報表的問題解決方案。 (嘗試在 Microsoft Dynamics CRM 中執行已上傳的自定義 SQL 型報表時,發生) 錯誤。

適用於:Microsoft Dynamics CRM 2011 年
原始 KB 編號: 2891221

徵狀

在 Microsoft Dynamics CRM 中上傳自定義 SQL 型報表之後,使用者在嘗試執行報表時會看到下列錯誤:

報告錯誤
無法顯示報表。 (rsProcessingAborted)

如果您檢閱 SSRS 報告記錄,您會看到下列錯誤:

處理!ReportServer_0-4!ef0!09/09/2013-13:21:40:: e ERROR:擲回 Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:、Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:無法建立數據源 'CRM' 的聯機。 >--- System.Data.SqlClient.SqlException:使用者 'NT AUTHORITY\ANONYMOUS LOGON' 的登入失敗。
在 System.Data.SqlClient.SqlInternalConnection.OnError (SqlException 例外狀況,布爾值 breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin (Boolean enlistOK)
at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin (ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover (String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist (SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
在 System.Data.SqlClient.SqlInternalConnectionTds.。ctor (DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection (DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection (DbConnection owningConnection、DbConnectionPool 集區、DbConnectionOptions 選項)
在 System.Data.ProviderBase.DbConnectionPool.CreateObject (DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest (DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionPool.GetConnection (DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection (DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.SqlClient.SqlConnection.Open ()
at Microsoft.ReportingServices.DataExtensions.ConnectionExtension.Open ()
at Microsoft.ReportingServices.DataExtensions.SqlConnectionWrapperBase.Open ()
at Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.OpenDataSourceExtensionConnection (IProcessingDataSource dataSourceObj, String connectString, DataSourceInfo dataSourceInfo, String datasetName)
---內部例外狀況堆疊追蹤---結束;

其他錯誤可能不完全相同,但與上述錯誤類似。 要尋找的主要資料位於下列項目的堆疊追蹤中:

堆疊包含:
at Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.OpenDataSourceExtensionConnection

錯誤包含:
Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:無法建立數據源 'CRM' 的聯機。 >--- System.Data.SqlClient.SqlException:

注意事項

SSRS 預設記錄位置為 DRIVE:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\LogFiles。

原因

此問題與 SSRS 中報表檔案的不正確數據源有關。 如果 Microsoft Dynamics CRM 組織資料庫不是如 ORG_MSCRM的結構化,則在 Microsoft Dynamics CRM 中建立報表時,它會將數據源保留在 RDL 檔案內,而不是使用與 Microsoft Dynamics CRM 報表延伸模組/數據連接器相關聯的數據源類型. 問題是 RDL 檔案內的初始目錄必須包含 _MSCRM

此螢幕快照顯示初始目錄的結尾不是_MSCRM。

注意事項

初始目錄的結尾 _MSCRM不是 。

解決方案

在 Microsoft Dynamics CRM 中上傳以 SQL 為基礎的報表之前,請先附加_MSCRM至初始目錄。

顯示 [已修正] 報表的螢幕快照,其中_MSCRM位於初始目錄結尾。

重要事項

初始目錄的結尾必須是 _MSCRM ,此目錄才能正常運作。