Wednesday, April 29, 2015

SharePoint 2013, SQL 2014 & PerformancePoint: Could not load file or assembly 'Microsoft.AnalysisServices.SharePoint.Integration, Version=10.0.0.0'

So I got this shiny error when trying to connect via Dashboard Designer to an Excel file, which also includes a data connection to a SQL server:

The Unattended Service Account "" does not have access to the server specified by the data source connection string.

Data source location:
Data source name:

Exception details:
Microsoft.AnalysisServices.AdomdClient.AdomdConnectionException: A connection cannot be made. Ensure that the server is running. ---> System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.AnalysisServices.SharePoint.Integration, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.
at Microsoft.AnalysisServices.AdomdClient.XmlaClient.WCFConnect(String dataSource, String dataSourceVersion, String& timeLastModified, String& databaseId, String& databaseName, String& loginName, String& serverEndpointAddress)
at Microsoft.AnalysisServices.AdomdClient.XmlaClient.OpenWcfConnection(ConnectionInfo connectionInfo)
at Microsoft.AnalysisServices.AdomdClient.XmlaClient.Connect(ConnectionInfo connectionInfo, Boolean beginSession)
--- End of inner exception stack trace ---
at Microsoft.AnalysisServices.AdomdClient.XmlaClient.Connect(ConnectionInfo connectionInfo, Boolean beginSession)
at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.XmlaClientProvider.Connect(Boolean toIXMLA)
at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.ConnectToXMLA(Boolean createSession, Boolean isHTTP)
at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.Open()
at Microsoft.PerformancePoint.Scorecards.DataSourceProviders.AdomdConnectionPool`1.c__DisplayClass4.b__2()
at Microsoft.SharePoint.SPSecurity.c__DisplayClass5.b__3()
at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)
at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)
at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)
at Microsoft.PerformancePoint.Scorecards.DataSourceProviders.AdomdConnectionPool`1.GetConnection(String connectionString, ConnectionContext connectionCtx, String effectiveUserName, CultureInfo culture, NewConnectionHandler newConnectionHandler, TestConnectionHandler testConnectionHandler, String targetAppId)


But how do you fix something like this?
Well, in this case it was pretty easy because the error message is clear about what is missing. SharePoint tries to use an older version of "Microsoft.AnalysisServices.SharePoint.Integration", in this case 10.0.0.0, which is the SQL Server 2008 R2 version (I think). All you have to do is change the needed version in the web.config under "C:\Program Files\Microsoft Office Servers\15.0\WebServices\PpsMonitoringServer".
At the end of the file you should find something like that:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.AnalysisServices.AdomdClient" culture="neutral" publicKeyToken="89845dcd8080cc91" />
<bindingRedirect oldVersion="9.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

For SQL Server 2012 change it to something like this:

For SQL Server 2014 change "<bindingRedirect oldVersion="9.0.0.0" newVersion="10.0.0.0" />" to this "<bindingRedirect oldVersion="10.0.0.0" newVersion="12.0.0.0" />".