Asp.net WCF服务:服务未对调用方进行身份验证

Asp.net WCF服务:服务未对调用方进行身份验证,asp.net,wcf,web-services,dynamics-crm-2011,dynamics-crm,Asp.net,Wcf,Web Services,Dynamics Crm 2011,Dynamics Crm,编辑:发现问题,问题未解决 我目前正在编写一个WCF服务库来访问Dynamics CRM 2011服务器,以收集可见组织的列表 代码在本地运行良好,但是在控制台应用程序中访问服务时,我收到以下错误: System.ServiceModel.Security.SecurityNegotiationException: The caller was not authenticated by the service. ---> System.ServiceModel.FaultException

编辑:发现问题,问题未解决

我目前正在编写一个WCF服务库来访问Dynamics CRM 2011服务器,以收集可见组织的列表

代码在本地运行良好,但是在控制台应用程序中访问服务时,我收到以下错误:

System.ServiceModel.Security.SecurityNegotiationException: The caller was not authenticated by the service. ---> System.ServiceModel.FaultException: The request for security token could not be satisfied because authentication failed.
   at System.ServiceModel.Security.SecurityUtils.ThrowIfNegotiationFault(Message message, EndpointAddress target)
   at System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody(Message incomingMessage, SspiNegotiationTokenProviderState sspiState)
   --- End of inner exception stack trace ---

Server stack trace:
   at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout)
   at System.ServiceModel.Security.SspiNegotiationTokenProvider.OnOpen(TimeSpantimeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Security.SymmetricSecurityProtocol.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.SecurityChannelFactory`1.ClientSecurityChannel`1.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.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
   at System.ServiceModel.Channels.ServiceChannel.EnsureOpened(TimeSpan timeout)
   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.Xrm.Sdk.Discovery.IDiscoveryService.Execute(DiscoveryRequest request)
   at Microsoft.Xrm.Sdk.Client.DiscoveryServiceProxy.Execute(DiscoveryRequest request)
   at DHDServ.DHDServ.GetData(String serverName)
Press any key to continue . . .
我正在使用active directory/Windows身份验证并阻止匿名用户(该服务托管在Windows Server 2008上,但将被其他计算机访问)。由于缺乏经验,web.config文件仍然非常简单(来自Visual Studio 2010模板)

任何帮助都将不胜感激。如果您需要更多信息,请询问,我会尽快回复

谢谢,
Jason

确保您作为运行命令行的windows用户是活动用户,并且在CRM中至少有一个角色。另外,请确保已安装。

确保运行命令行的windows用户是活动用户,并且在CRM中至少有一个角色。另外,请确保已安装。

我们的服务器连接似乎有问题

由于服务器的设置方式,它不能很好地处理“双跳”,从而导致Kerberos身份验证错误

我们还没有解决这个错误,但是这篇文章只是让你知道问题已经解决了


感谢所有帮助我们的人:)

我们的服务器连接似乎有问题

由于服务器的设置方式,它不能很好地处理“双跳”,从而导致Kerberos身份验证错误

我们还没有解决这个错误,但是这篇文章只是让你知道问题已经解决了


感谢所有帮助过我的人:)

打开CRM跟踪以确保请求到达CRM,并且不会被错误的web.config设置阻止。我现在无法这样做,但是如果我在DiscoveryServiceProxy对象上执行“IsAuthenticated”方法,它将返回true(从表面上看,这意味着我实际上是经过身份验证的。您可以发布用于访问CRM的代码,包括设置凭据的位置吗?这似乎是我们的服务器连接存在问题。由于服务器的设置方式,它不能很好地处理“双跃点”,从而导致Kerberos身份验证错误。我们尚未解决此问题解决此错误,但此帖子只是让您知道问题已解决。感谢所有帮助您的人:)启用CRM跟踪以确保请求正在访问CRM,并且没有被某些错误的web.config设置阻止。目前我无法执行此操作,但是如果我在DiscoveryServiceProxy对象上执行“IsAuthenticated”方法,它将返回true(从表面上看,这意味着我实际上是经过身份验证的。您可以发布用于访问CRM的代码,包括设置凭据的位置吗?这似乎是我们的服务器连接存在问题。由于服务器的设置方式,它不能很好地处理“双跃点”,从而导致Kerberos身份验证错误。我们尚未解决此问题解决此错误,但此帖子只是让您知道问题已解决。感谢所有帮助您的人:)@jas0n与您进行身份验证的用户是否具有CRM角色?是的,并且该用户可以访问相关服务器上的3个组织。@jas0n与您进行身份验证的用户是否具有CRM角色?是的,并且该用户可以访问相关服务器上的3个组织。这可能更适合作为注释,因为它不支持实际上提供了问题的解决方案,您只是注意到问题已通过其他方式得到解决。抱歉,这是造成堆栈溢出的新手。至少我现在知道了。谢谢:)这可能更适合作为评论,因为它实际上并没有提供问题的解决方案,您只是注意到问题已通过其他方式得到解决。抱歉,这是造成堆栈溢出的新原因。至少我现在知道了。谢谢:)