I'm trying to fix the "failed to refresh: TfsOlapReport" error on the TFS project portal dashboards in SharePoint 2010. I've followed the instructions here to make sure the Secure Store Service and the TFS Reports are configured correctly.
The only error log I can see is the following stack trace in the SharePoint 2010 server ULS logs when Excel Services attempt to connect to the data source.
The Application ID is "TFS", which links to an account in SSS "DOMAIN\TFSReports". You can see that this lookup succeeds. It looks to me like there is some strange error when opening the OLEDBConnection - PF_CHECK_ERROR.
(This is paraphrased from another machine without internet access)
StoredCredentialProvider.GetCredentials: Credentials added to stored cache for Secure Store Application Id: TFS
ConnectionManager.GetConnection: ConnectionKey=[[3344175, TFSReports], [Oledb, Stored, TFS, False], 1033, ]
ConnectionManager.GetConnection: Didn't find the connection without the workbook version. Updated connection key with the workbook version for another lookup ConnectionKey=[[3344175, TFSReports], [Oledb, Stored, TFS, False], 1033, ConnectionInfo.WorkbookVersion: Uri=http://sharepoint/Reports/Burndown.xlsx, Version=Wednesday 06 June 2012 14:31:00]
Credentials.TryLogonUser: called for connection username: TFSReports, domain: DOMAIN
PF_CHECK_ERROR return 'hresult error' 0x80040154 ; Stack Trace: NA
OLEDBConnection::SetInitProperties: Class not registered
PF_CHECK_ERROR return 'hresult error' 0x80040154 ; Stack Trace: NA
ConnectionManager.GetConnection: Failed to created new connection [...]
ConnectionManager.GetConnection: Caught an exception [...]
Refresh failed for 'TfsOlapReport' in the workbook http://sharepoint/Reports/Burndown.xlsx
ConnectionManager.InitConnInfoFromOdcFile: ODC File Uri is not valid
ExternalSource.ExecuteOperation: We exhausted all available connection information.
I've run out of things to search for now. Has anyone seen anything like this before? Does anyone have a stack trace of a successful Excel Services refresh so I can see where things are going wrong? Any help appreciated.