1

While upgrading from SharePoint 2010 to 2013 I am facing the following problem.

I have an application page, from which an SSRS API call is made to get all subscriptions for a report.

ReportingService2010 rs = new ReportingService2010();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
rs.Url = serverUrl + "/_vti_bin/ReportServer/ReportService2010.asmx";
try
{
    return rs.ListSubscriptions(reportUrl);
}
catch (SoapException ex)
{ }

During the execution of this code I get an UnauthorizedAccessException with stacktrace

System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)), StackTrace:    at Microsoft.SharePoint.SPWeb.GetObjectForUrl(String strUrl, Guid& listId)     at Microsoft.ReportingServices.SharePoint.Objects.RSSPImpWeb.GetObject(String strUrl)     at Microsoft.ReportingServices.SharePoint.Server.Utility.GetSPItemMetaDataAndContent(ItemSpecifier itemSpecifier, UserContext userContext, Boolean returnContent, Boolean wrapFileNotFoundOnOpenWeb, Byte[]& content)     at Microsoft.ReportingServices.SharePoint.Server.Utility.GetSharePointItem(ExternalItemPath objectName, UserContext userContext)     at Microsoft.ReportingServices.SharePoint.Server.SharePointDBInterface.GetItemTypeAndId(ExternalItemPath objectName, ItemType& type, Guid& id)     at Micros... 0f35fa9b-1c67-c0b8-f616-d4cac96f7408
...oft.ReportingServices.SharePoint.Server.SharePointDBInterface.ObjectExists(ExternalItemPath objectName, ItemType& type, Guid& id, Int32& snapshotLimit, Byte[]& secDesc, Int32& execOptions, Guid& snapshotId, Guid& linkID)     at Microsoft.ReportingServices.Library.GetItemTypeAction.PerformActionNow()     at Microsoft.ReportingServices.Library.RSSoapAction`1.Execute()     at Microsoft.ReportingServices.Library.ReportingService2010Impl.GetItemType(String itemPath, Boolean fromStore, String parameterName, Boolean allowEditSessionSyntax)     at Microsoft.ReportingServices.Library.ReportingService2010Impl.ListSubscriptions(String ItemPathOrSiteURL, String Owner, SubscriptionImpl[]& SubscriptionItems)     at Microsoft.ReportingServices.ServiceRuntime.ReportServiceManagement.<>c__DisplayClass5b.<L...  0f35fa9b-1c67-c0b8-f616-d4cac96f7408
...istSubscriptions>b__5a()     at Microsoft.ReportingServices.ServiceRuntime.ReportServiceBase.ExecuteWithContext[TResult](Func`1 action)     at Microsoft.ReportingServices.ServiceRuntime.ReportServiceManagement.ListSubscriptions(String ItemPathOrSiteURL)     at SyncInvokeListSubscriptions(Object , Object[] , Object[] )     at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)     at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)     at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)     at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)     at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationCon...  0f35fa9b-1c67-c0b8-f616-d4cac96f7408
...textSet)     at System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump(RequestContext request, Boolean cleanThread, OperationContext currentOperationContext)     at System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContext request, OperationContext currentOperationContext)     at System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(IAsyncResult result)     at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)     at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)     at System.ServiceModel.Channels.SecurityChannelListener`1.ReceiveItemAndVerifySecurityAsyncResult`2.InnerTryReceiveCompletedCallback(IAsyncResult result)     at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)     at Sy...  0f35fa9b-1c67-c0b8-f616-d4cac96f7408
...stem.Runtime.AsyncResult.Complete(Boolean completedSynchronously)     at System.Runtime.InputQueue`1.AsyncQueueReader.Set(Item item)     at System.Runtime.InputQueue`1.EnqueueAndDispatch(Item item, Boolean canDispatchOnThisThread)     at System.Runtime.InputQueue`1.EnqueueAndDispatch(T item, Action dequeuedCallback, Boolean canDispatchOnThisThread)     at System.ServiceModel.Channels.SingletonChannelAcceptor`3.Enqueue(QueueItemType item, Action dequeuedCallback, Boolean canDispatchOnThisThread)     at System.ServiceModel.Channels.HttpPipeline.EnqueueMessageAsyncResult.CompleteParseAndEnqueue(IAsyncResult result)     at System.ServiceModel.Channels.HttpPipeline.EnqueueMessageAsyncResult.HandleParseIncomingMessage(IAsyncResult result)     at System.Runtime.AsyncResult.SyncContinue(IAsyncResu...  0f35fa9b-1c67-c0b8-f616-d4cac96f7408
...lt result)     at System.ServiceModel.Channels.HttpPipeline.EmptyHttpPipeline.BeginProcessInboundRequest(ReplyChannelAcceptor replyChannelAcceptor, Action dequeuedCallback, AsyncCallback callback, Object state)     at System.ServiceModel.Channels.HttpChannelListener`1.HttpContextReceivedAsyncResult`1.ProcessHttpContextAsync()     at System.ServiceModel.Channels.HttpChannelListener`1.BeginHttpContextReceived(HttpRequestContext context, Action acceptorCallback, AsyncCallback callback, Object state)     at System.ServiceModel.Activation.HostedHttpTransportManager.HttpContextReceived(HostedHttpRequestAsyncResult result)     at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest()     at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest()     at Syst...  0f35fa9b-1c67-c0b8-f616-d4cac96f7408
...em.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequest(Object state)     at System.ServiceModel.AspNetPartialTrustHelpers.PartialTrustInvoke(ContextCallback callback, Object state)     at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequestWithFlow(Object state)     at System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)     at System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped)     at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)   0f35fa9b-1c67-c0b8-f616-d4cac96f7408
Throwing Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: , Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: The permissions granted to user 'NT AUTHORITY\ANONYMOUS LOGON' are insufficient for performing this operation.;    0f35fa9b-1c67-c0b8-f616-d4cac96f7408

The described behavior is similar for both SP 2010 and SP 2013. In SharePoint 2010 changing the ASP.NET impersonation account from default to an identity with sufficient permissions on hosted web application would solve the issue.
Unfortunately, doing that on SP 2013 Farm causes another exception of type SOAPException

System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> The security token request cannot be completed.    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)

I've tried to change the identity of Anonymous Authentication but got the same exception. I've done a lot of debugging and read tons of logs and I am out of clues on how to solve this problem.
Can anyone suggest anything?

Here is some additional information that might help:
Web application is configured for FBA and uses LDAP provider for authentication.

Thanks.

1 Answer 1

1

Possibly an issue with the header in the servicecall. I recently had the same kind of error when making a service call to lists.asmx on a mixed mode sp2010 environment. http://msdn.microsoft.com/en-us/library/hh124553.aspx#Y1200

1
  • Thanks for your answer Kees. I tried adding X-FORMS_BASED_AUTH_ACCEPTED header with value f, but service calls were redirected to login page. Rather I've got a working answer on this thread link. It is needed to call Login method on /_vti_bin/authentication.asmx then add that cookie to the rs connection. Feb 5, 2013 at 4:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.