Using Microsoft Sharepoint List as DataSource in SSRS - sql-server

I have a problem connecting the SSRS to Sharepoint Online List. I can connect it through Microsoft Excel (asking for credentials, auth) and can read from the list but when I use the same URL to SSRS it doesnt work and message appears saying that "E_ACCESSDENIED".
I search over the internet a lots of threads but without success. I tried all of the auth methods but without success. My thoughts are that my connection string in the SSRS should be different. I really done know and need your help! Thanks!
Here is the error:
===================================
Server was unable to process request. ---> Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
(Microsoft Visual Studio)
------------------------------
Program Location:
at Microsoft.ReportingServices.DataExtensions.SharePointList.SPRemoteConnection.ExecuteServiceRequest(ServiceRequest request)
at Microsoft.ReportingServices.DataExtensions.SharePointList.SPRemoteConnection.GetLists()
at Microsoft.ReportingServices.QueryDesigners.SharePoint.SharePointTables.Refresh()
at Microsoft.ReportingServices.QueryDesigners.SharePoint.QueryDesigner.Presenter.ValidateConnection()
at Microsoft.ReportingServices.QueryDesigners.SharePoint.SharePointQueryDesigner.InitializeQueryDesigner()
at Microsoft.ReportingServices.QueryDesigners.InternalQueryDesignerWrapper.InitializeDesigner()
at Microsoft.ReportingServices.QueryDesigners.InternalQueryDesignerWithGenericModeWrapper.Initialize()
===================================
Server was unable to process request. ---> Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) (System.Web.Services)
------------------------------
Program Location:
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Microsoft.ReportingServices.DataExtensions.SharePointList.SPListService.GetListCollection()
at Microsoft.ReportingServices.DataExtensions.SharePointList.SPRemoteConnection.<>c__DisplayClass5_0.<GetLists>b__0(SPListService listSvc)
at Microsoft.ReportingServices.DataExtensions.SharePointList.SPRemoteConnection.ExecuteServiceRequest(ServiceRequest request)
Best regards.

I believe that option is only for on-premises versions, not for SharePoint Online. I do not believe you can directly connect SharePoint Online to SSRS.
We set up an SSIS package that pulls list data from SharePoint online into our on-premises database, and then query that within the SSRS report. It works pretty well for our needs.

Related

"Remote report processing requires Microsoft SQL Server 2008 Reporting Services or later" But I'm using 2016

I have 2 Reporting Services servers, one is Reporting Services 2012 and the other 2016.
There are reports and folders on both servers.
I am using Microsoft Report Viewer (WinForms dll) 10.0.0.0 in a WPF page
wrapped on a winforms component to connect in Remote mode to my report server.
I am NOT using 2005 reporting services or reports anywhere and have
recompiled the reports in my report writer.
When I try to view a report in my WPF page I just get this message:
"Remote report processing requires Microsoft SQL Server 2008 Reporting Services or later"
How can I stop this message and see my report appear?
Thanks in advance.
Dave K.
Additional....
I did a break point just after the reportviewer.RefreshReport() and dug deep and found this exception which shows ReportingServices2005 (but why??)...
at Microsoft.Reporting.WinForms.Internal.Soap.ReportingServices2005.Execution.RSExecutionConnection.SoapVersionMismatchException.ThrowIfVersionMismatch(SoapException e, String expectedEndpoint, String message, Boolean includeInnerException)
at Microsoft.Reporting.WinForms.SoapReportExecutionService.ServerReportSoapProxy.OnSoapException(SoapException e)
at Microsoft.Reporting.WinForms.Internal.Soap.ReportingServices2005.Execution.RSExecutionConnection.ProxyMethodInvocation.Execute[TReturn](RSExecutionConnection connection, ProxyMethod1 initialMethod, ProxyMethod1 retryMethod)
at Microsoft.Reporting.WinForms.Internal.Soap.ReportingServices2005.Execution.RSExecutionConnection.LoadReport(String Report, String HistoryID)
at Microsoft.Reporting.WinForms.SoapReportExecutionService.LoadReport(String report, String historyId)
at Microsoft.Reporting.WinForms.ServerReport.EnsureExecutionSession()
at Microsoft.Reporting.WinForms.ServerReport.get_AutoRefreshInterval()
Found what it was. I was using the report browser service "ReportService2010.asmx" in the url when 'Viewing' the reports. Of course this is only used when getting a list of reports etc. from the repository.
I also now use the CustomSSRSCredentials class from The request failed with HTTP status 401: Unauthorized IN SSRS which is very good.
Now all working.

OData Source in SSIS package getting 500 Internal Server Error

I have an SSIS package that has a single OData source (sharepoint site source). The package runs fine from Visual Studio. Once deployed to a SQL instance I try to run the package via an Agent Job (uses the Agent service account to execute), and I get the following:
SharePoint List to Stage:Error: System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
at System.Net.HttpWebRequest.GetResponse()
at Microsoft.SqlServer.IntegrationServices.DataFeedClient.Http.HttpWebRequestWrapper.GetResponse()
at Microsoft.SqlServer.IntegrationServices.DataFeedClient.Http.WebRequestHelper.GetResponseWithThreadSafeRetry(IWebRequest& request,
Func`1 createWebRequest, Int32 retryCount, Int32 retrySleepInMilliseconds, Boolean isOAuth, Func`2 refreshRequestWithNewAccessToken, Func`2
getStatusCode)
at
Microsoft.SqlServer.IntegrationServices.DataFeedClient.Http.WebRequestHelper.GetResponseWithThreadSafeRetryAndImpersonation(IWebRequest&
request, DataFeedConnection connection, Func`1 createWebRequest)
at Microsoft.SqlServer.IntegrationServices.DataFeedClient.DataFeedCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.SqlServer.IntegrationServices.OData.ODataSource.GetSchemaTable()
at Microsoft.SqlServer.IntegrationServices.OData.ODataSource.PreExecute()
at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPreExecute(IDTSManagedComponentWrapper100 wrapper)
The service account running the package has Full Control permissions on the SharePoint list in question. I have several other packages on the same server that use OData feed from the same SharePoint farm with the same service account without issue.
Turned out that the error was on the SharePoint server... the lookup column threshold in Central Admin was set to 8 (the default), but the number of lookup columns in the list exceeds that. Since I'm a farm admin, I bypass the restriction. I just wish that the error that goes through to SSIS was a little more explanatory than just (500).

SSIS - OData Connection Manager Editor Error

I was using OData source to load data from SharePoint 2013 List to SQL Server and the same was working for months. Now I am receiving below error in OData Source connection manager. SharePoint server is UP and I am able to access it from browser using the same credentials. Please help
Image shows the Error
Error Information:
The partner returned a bad sign-in name or password error. For more information, see Federation Error-handling Scenarios. (Microsoft.SqlServer.IntegrationServices.ODataConnectionManager)

SQL Server Report Builder - Getting "Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)" when connecting to SharePoint lists

I'm unable to connect SQL Server Report Builder 2012 to SharePoint 2013 to create reports from SharePoint lists. This is the error message that I get when trying to create DataSet using Query Designer in SQL Server Report Builder
===================================
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
at Microsoft.SharePoint.SoapServer.Lists.GetListCollection()
--- End of inner exception stack trace ---
(Microsoft SQL Server Report Builder)
------------------------------
Program Location:
at Microsoft.ReportingServices.DataExtensions.SharePointList.SPRemoteConnection.ExecuteServiceRequest(ServiceRequest request)
at Microsoft.ReportingServices.DataExtensions.SharePointList.SPRemoteConnection.GetLists()
at Microsoft.ReportingServices.QueryDesigners.SharePoint.SharePointTables.Refresh()
at Microsoft.ReportingServices.QueryDesigners.SharePoint.QueryDesigner.Presenter.ValidateConnection()
at Microsoft.ReportingServices.QueryDesigners.SharePoint.SharePointQueryDesigner.InitializeQueryDesigner()
at Microsoft.ReportingServices.QueryDesigners.InternalQueryDesignerWrapper.InitializeDesigner()
at Microsoft.ReportingServices.QueryDesigners.InternalQueryDesignerWithGenericModeWrapper.Initialize()
===================================
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
at Microsoft.SharePoint.SoapServer.Lists.GetListCollection()
--- End of inner exception stack trace --- (System.Web.Services)
------------------------------
Program Location:
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Microsoft.ReportingServices.DataExtensions.SharePointList.SPListService.GetListCollection()
at Microsoft.ReportingServices.DataExtensions.SharePointList.SPRemoteConnection.<>c__DisplayClass1.<GetLists>b__0(SPListService listSvc)
at Microsoft.ReportingServices.DataExtensions.SharePointList.SPRemoteConnection.ExecuteServiceRequest(ServiceRequest request)
This is my data source
For authentication we use the same service account in execution account, and that is the one provided in this data source. I've enabled Anonymous authentication in IIS for this web site, and it uses the same account.
This problem was fixed by extending web app in SharePoint Central Administration. New web app uses the same application pool but it is on different port, and uses Basic Authentication
It look like that Report Builder uses basic authentication and the web app must use basic authentication too.

Unable to start service SQLSERVERAGENT on server

I'm using SQL Server 2012. I moved my Data and log files and I tired to start the SQL Server. But it says:
Unable to Start Service on Server X. (mscorlib)
The MSSQLSERVER service on PSFACAMDWHSQL2 started and then stopped. (ObjectExplorer).
The SQL Error log:
Unable to start service MSSQLSERVER on server PSFACAMDWHSQL2. (mscorlib)
Program Location:
Server stack trace:
at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.Service.Start()
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ServiceActionHandler.EndInvoke(IAsyncResult result)
at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ServiceControlProgress.ActionCompletedHandler(IAsyncResult result)
The MSSQLSERVER service on PSFACAMDWHSQL2 started and then stopped. (ObjectExplorer)
Program Location:
at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.Service.Start()
Any help will be much appreciated.
Your instance won't start because model database is not where it's expected to be. As a quick fix move the model database's files to their original location and start the instance.
Pls read about moving databases here.
Quick and dirty solution but it works!
Copy the SQL agent user "NT Service\SQLSERVERAGENT" and added it to the local machine(server)'s administrator group (users and group). Once you have done that start your SQL Agent from the SQL Server XXX Configuration Manager. Do the same on SSMS.
I hope that would help.
Thanks

Resources