SharePoint 2010 から 2013 へのアップグレード中に、次の問題に直面しています。
レポートのすべてのサブスクリプションを取得するために SSRS API 呼び出しが行われるアプリケーション ページがあります。
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)
{ }
このコードの実行中に、スタックトレースで UnauthorizedAccessException を取得します
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
説明されている動作は、SP 2010 と SP 2013 の両方で類似しています。SharePoint 2010 では、ASP.NET 偽装アカウントを既定から、ホストされた Web アプリケーションに対する十分な権限を持つ ID に変更すると、問題が解決します。
残念ながら、SP 2013 ファームでそれを行うと、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)
匿名認証の ID を変更しようとしましたが、同じ例外が発生しました。私は多くのデバッグを行い、大量のログを読みましたが、この問題を解決する方法の手がかりがありません。
誰でも何か提案できますか?
役立つ追加情報を次に示します
。Web アプリケーションは FBA 用に構成され、認証に LDAP プロバイダーを使用します。
ありがとう。