Dynamics ax 2009 AX 2012中的SSRS报告错误

Dynamics ax 2009 AX 2012中的SSRS报告错误,dynamics-ax-2009,axapta,dynamics-ax-2012,Dynamics Ax 2009,Axapta,Dynamics Ax 2012,我正在尝试使用AX 2012在Visual Studio 2010中创建一个基本的SSRS报告。 我想显示基本的CustTable数据。当我将数据集与查询CUSTTABLERS(AOT中的一个查询)链接时,我得到一个错误。 错误是 调用SSPI失败,请参阅内部异常 如果我使用VisualStudio2008在AX2009中执行相同的步骤,则不会发生这种情况。 在谷歌上,我发现这与“配置错误的SPN”有关。 SPN是服务器主体名称,在Kerboros环境中指定给服务器实例的名称。但我无法纠正这一点

我正在尝试使用AX 2012在Visual Studio 2010中创建一个基本的SSRS报告。 我想显示基本的CustTable数据。当我将数据集与查询CUSTTABLERS(AOT中的一个查询)链接时,我得到一个错误。 错误是

调用SSPI失败,请参阅内部异常

如果我使用VisualStudio2008在AX2009中执行相同的步骤,则不会发生这种情况。 在谷歌上,我发现这与“配置错误的SPN”有关。 SPN是服务器主体名称,在Kerboros环境中指定给服务器实例的名称。但我无法纠正这一点。 我正在使用Oracle VirtualBox上运行的AX2012映像

注:抱歉,由于我是新手,无法发布截图:)

Visual Studio中的错误日志

Error   3   The "GenerateRdlTask" task failed unexpectedly.
Microsoft.Dynamics.AX.Framework.Services.Client.UserSessionServiceException: A call to SSPI failed, see inner exception. ---> System.ServiceModel.Security.SecurityNegotiationException: A call to SSPI failed, see inner exception. ---> System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> System.ComponentModel.Win32Exception: The target principal name is incorrect
   --- End of inner exception stack trace ---
   at System.Net.Security.NegoState.StartSendAuthResetSignal(LazyAsyncResult lazyResult, Byte[] message, Exception exception)
   at System.Net.Security.NegoState.StartSendBlob(Byte[] message, LazyAsyncResult lazyResult)
   at System.Net.Security.NegoState.CheckCompletionBeforeNextSend(Byte[] message, LazyAsyncResult lazyResult)
   at System.Net.Security.NegoState.ProcessReceivedBlob(Byte[] message, LazyAsyncResult lazyResult)
   at System.Net.Security.NegoState.StartReceiveBlob(LazyAsyncResult lazyResult)
   at System.Net.Security.NegoState.CheckCompletionBeforeNextReceive(LazyAsyncResult lazyResult)
   at System.Net.Security.NegoState.StartSendBlob(Byte[] message, LazyAsyncResult lazyResult)
   at System.Net.Security.NegoState.CheckCompletionBeforeNextSend(Byte[] message, LazyAsyncResult lazyResult)
   at System.Net.Security.NegoState.ProcessReceivedBlob(Byte[] message, LazyAsyncResult lazyResult)
   at System.Net.Security.NegoState.StartReceiveBlob(LazyAsyncResult lazyResult)
   at System.Net.Security.NegoState.CheckCompletionBeforeNextReceive(LazyAsyncResult lazyResult)
   at System.Net.Security.NegoState.StartSendBlob(Byte[] message, LazyAsyncResult lazyResult)
   at System.Net.Security.NegoState.ProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Net.Security.NegotiateStream.AuthenticateAsClient(NetworkCredential credential, ChannelBinding binding, String targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel)
   at System.Net.Security.NegotiateStream.AuthenticateAsClient(NetworkCredential credential, String targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel)
   at System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeInitiator.OnInitiateUpgrade(Stream stream, SecurityMessageProperty& remoteSecurity)
   --- End of inner exception stack trace ---

Server stack trace: 
   at System.ServiceModel.Channels.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeInitiator.OnInitiateUpgrade(Stream stream, SecurityMessageProperty& remoteSecurity)
   at System.ServiceModel.Channels.StreamSecurityUpgradeInitiatorBase.InitiateUpgrade(Stream stream)
   at System.ServiceModel.Channels.ConnectionUpgradeHelper.InitiateUpgrade(StreamUpgradeInitiator upgradeInitiator, IConnection& connection, ClientFramingDecoder decoder, IDefaultCommunicationTimeouts defaultTimeouts, TimeoutHelper& timeoutHelper)
   at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPreamble(IConnection connection, ArraySegment`1 preamble, TimeoutHelper& timeoutHelper)
   at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.DuplexConnectionPoolHelper.AcceptPooledConnection(IConnection connection, TimeoutHelper& timeoutHelper)
   at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan timeout)
   at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel channel, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at Microsoft.Dynamics.AX.Framework.Services.Client.UserSessionService.IUserSessionService.GetUserSessionInfo(UserSessionServiceGetUserSessionInfoRequest request)
   at Microsoft.Dynamics.AX.Framework.Services.Client.UserSessionClientInternal.<GetUserSessionInfo>b__0(IUserSessionService channel)
   at Microsoft.Dynamics.AX.Framework.Services.Client.ServiceClientHelper.InvokeChannelOperation[TResult,TChannel](IServiceClient`1 client, Func`2 operationInvoker, Func`2 exceptionWrapper)
   --- End of inner exception stack trace ---
   at Microsoft.Dynamics.AX.Framework.Services.Client.ServiceClientHelper.InvokeChannelOperation[TResult,TChannel](IServiceClient`1 client, Func`2 operationInvoker, Func`2 exceptionWrapper)
   at Microsoft.Dynamics.AX.Framework.Services.Client.UserSessionClientInternal.GetUserSessionInfo()
   at Microsoft.Dynamics.AX.Framework.Services.Client.UserSessionClient.GetUserSessionInfo()
   at Microsoft.Dynamics.AX.Framework.Reports.Shared.UserInformationProxy.GetUserSessionInfo()
   at Microsoft.Dynamics.AX.Framework.Reports.Shared.UserInformationProxy.GetUserLanguage()
   at Microsoft.Dynamics.AX.Framework.Reports.Shared.ReportParameterPromptStringResolver.Resolve(Stream input, String language)
   at Microsoft.Dynamics.Framework.Deployment.Reports.GenerateRdlTask.GetRDLForDesign(IReportDesignDefinition reportDesign, String[] assemblyReferences)
   at Microsoft.Dynamics.Framework.Deployment.Reports.GenerateRdlTask.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask, Boolean& taskResult)   C:\Program Files (x86)\MSBuild\Microsoft\DynamicsTools\Microsoft.Dynamics.Framework.Design.Reporting.Modeling.targets   103 6   ReporDemoModel1
错误3“GeneraterlTask”任务意外失败。
Microsoft.Dynamics.AX.Framework.Services.Client.UserSessionService异常:调用SSPI失败,请参阅内部异常。-->System.ServiceModel.Security.SecurityNegotiationException:调用SSPI失败,请参阅内部异常。-->System.Security.Authentication.AuthenticationException:调用SSPI失败,请参阅内部异常。-->System.ComponentModel.Win32异常:目标主体名称不正确
---内部异常堆栈跟踪的结束---
在System.Net.Security.NegoState.StartSendAuthResetSignal(LazyAsyncResult-lazyResult,字节[]消息,异常)
位于System.Net.Security.NegoState.StartSendBlob(字节[]消息,LazyAsyncResult lazyResult)
在System.Net.Security.NegoState.CheckCompletionBeforeNextSend(字节[]消息,LazyAsyncResult lazyResult)
在System.Net.Security.NegoState.ProcessReceivedBlob(字节[]消息,LazyAsyncResult lazyResult)
位于System.Net.Security.NegoState.StartReceiveBlob(LazyAsyncResult-lazyResult)
在System.Net.Security.NegoState.CheckCompletionBeforeNextReceive(LazyAsyncResult lazyResult)上
位于System.Net.Security.NegoState.StartSendBlob(字节[]消息,LazyAsyncResult lazyResult)
在System.Net.Security.NegoState.CheckCompletionBeforeNextSend(字节[]消息,LazyAsyncResult lazyResult)
在System.Net.Security.NegoState.ProcessReceivedBlob(字节[]消息,LazyAsyncResult lazyResult)
位于System.Net.Security.NegoState.StartReceiveBlob(LazyAsyncResult-lazyResult)
在System.Net.Security.NegoState.CheckCompletionBeforeNextReceive(LazyAsyncResult lazyResult)上
位于System.Net.Security.NegoState.StartSendBlob(字节[]消息,LazyAsyncResult lazyResult)
at System.Net.Security.NegoState.ProcessAuthentication(LazyAsyncResult-lazyResult)
位于System.Net.Security.NegotiateStream.AuthenticateTasClient(网络凭据凭据、ChannelBinding绑定、字符串targetName、ProtectionLevel requiredProtectionLevel、TokenImpersonationLevel allowedImpersonationLevel)
位于System.Net.Security.NegotiateStream.AuthenticateTasClient(网络凭据凭据、字符串targetName、ProtectionLevel requiredProtectionLevel、TokenImpersonationLevel allowedImpersonationLevel)
位于System.ServiceModel.Channel.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeInitiator.OnInitiateUpgrade(Stream、SecurityMessageProperty和remoteSecurity)
---内部异常堆栈跟踪的结束---
服务器堆栈跟踪:
位于System.ServiceModel.Channel.WindowsStreamSecurityUpgradeProvider.WindowsStreamSecurityUpgradeInitiator.OnInitiateUpgrade(Stream、SecurityMessageProperty和remoteSecurity)
位于System.ServiceModel.Channels.StreamSecurityUpgradeInitiatorBase.InitiateUpgrade(流)
在System.ServiceModel.Channel.ConnectionUpgradeHelper.InitiateUpgrade(流升级启动器升级启动器、IConnection&connection、ClientFramingDecoder解码器、IDefaultCommunicationTimeouts默认超时、TimeoutHelper&TimeoutHelper)
位于System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPremission(i连接连接、ArraySegment`1 Premission、TimeoutHelper和TimeoutHelper)
位于System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.DuplexConnectionPoolHelper.AcceptPooledConnection(IConnection连接、TimeoutHelper和TimeoutHelper)
位于System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan超时)
位于System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan超时)
在System.ServiceModel.Channels.CommunicationObject.Open处(TimeSpan超时)
在System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan超时)处
在System.ServiceModel.Channels.CommunicationObject.Open处(TimeSpan超时)
在System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.iAllonce.Call中(ServiceChannel通道,TimeSpan超时)
在System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan超时,CallOnceManager级联)
在System.ServiceModel.Channels.ServiceChannel.Call(字符串操作、布尔单向、ProxyOperationRuntime操作、对象[]输入、对象[]输出、时间跨度超时)
位于System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage方法调用,ProxyOperationRuntime操作)
位于System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage消息)
在[0]处重试异常:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)
at System.Runtime.Remoting.proxy.RealProxy.PrivateInvoke(MessageData&msgData,Int32类型)
位于Microsoft.Dynamics.AX.Framework.Services.Client.UserSessionService.IUserSessionService.GetUserSessionInfo(UserSessionService GetUserSessionInfo请求)
位于Microsoft.Dynamics.AX.Framework.Services.Client.UserSessionClientTernal.b_u0(IUserSessionService频道)
在Microsoft.Dynamics.AX.Framework.Services.Client.ServiceClientHelper.InvokeChannelOperation[TResult,TChannel](iSeries客户端'1客户端,函数'2操作入口,函数'2例外包装器)
---内部异常堆栈跟踪的结束---
位于Microsoft.Dynamics.AX.Framework.Services.Client.ServiceClientHelper。