从Host Machine连接到CRM时出现SecurityException(令牌提供程序无法获取令牌.....)

时间:2010-10-21 23:38:41

标签: dynamics-crm dynamics-crm-4

我正在尝试使用WCF服务(位于主机上)从CRM(即在虚拟机上)检索数据。 当我从主机调试并尝试连接到CRM时,我正在 Service.RetrieveMultiple 间歇性地运行下面的SecurityException。

代码:

QueryExpression queryIssue = new QueryExpression

{ EntityName = irpc_Issue.EntityLogicalName, ColumnSet = new ColumnSet(new String [] {“irpc_issueid”,“irpc_issuename”}), Criteria = new FilterExpression() };

queryIssue.Criteria.AddCondition(“irpc_issueid”,ConditionOperator.Equal,issueGuid); data.Issue = new NameGuid(); data.Issue.Name = service.RetrieveMultiple(queryIssue).Entities.FirstOrDefault()。Attributes [“irpc_issuename”]。ToString();

例外详细信息:

System.ServiceModel.Security.MessageSecurityException:{“令牌提供程序无法获取目标'http://irpc-dc/amgen/XRMServices/2011/Organization.svc'的令牌。”}

InnerException:{“提供的NetworkCredentials无法创建Kerberos凭据,有关详细信息,请参阅内部异常。”} 资料来源:mscorlib

服务器堆栈跟踪:    在System.ServiceModel.Security.SecurityProtocol.GetToken(SecurityTokenProvider提供程序,EndpointAddress目标,TimeSpan超时)    在System.ServiceModel.Security.MessageSecurityProtocol.GetTokenAndEnsureOutgoingIdentity(SecurityTokenProvider provider,Boolean isEncryptionOn,TimeSpan timeout,SecurityTokenAuthenticator authenticator)    在System.ServiceModel.Security.SymmetricSecurityProtocol.TryGetTokenSynchronouslyForOutgoingSecurity(消息消息,SecurityProtocolCorrelationState correlationState,Boolean isBlockingCall,TimeSpan timeout,SecurityToken& token,SecurityTokenParameters& tokenParameters,SecurityToken& prerequisiteWrappingToken,IList 1& supportingTokens, SecurityProtocolCorrelationState& newCorrelationState) at System.ServiceModel.Security.SymmetricSecurityProtocol.SecureOutgoingMessageCore(Message& message, TimeSpan timeout, SecurityProtocolCorrelationState correlationState) at System.ServiceModel.Security.MessageSecurityProtocol.SecureOutgoingMessage(Message& message, TimeSpan timeout, SecurityProtocolCorrelationState correlationState) at System.ServiceModel.Channels.SecurityChannelFactory 1.SecurityRequestChannel.Request(消息消息, TimeSpan超时)    在System.ServiceModel.Dispatcher.RequestChannelBinder.Request(消息消息,TimeSpan超时)    在System.ServiceModel.Channels.ServiceChannel.Call(String action,Boolean oneway,ProxyOperationRuntime operation,Object [] ins,Object [] outs,TimeSpan timeout)    在System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall,ProxyOperationRuntime操作)    在System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

在[0]处重新抛出异常:    在System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)    在System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 type)    在Microsoft.Xrm.Sdk.IOrganizationService.RetrieveMultiple(QueryBase查询)    在Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.RetrieveMultipleCore(QueryBase查询)    在Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.RetrieveMultiple(QueryBase查询)

我在Guest上运行了SETSPN命令(SETSPN -A HTTP / irpc-dc IRPC \ CrmService),参考这里的线程 http://social.microsoft.com/Forums/en-US/crm2011beta/thread/132a6d26-04fc-4e1e-8a7e-06088e106578

我仍然遇到这个例外。

我想知道是否有人遇到同样的错误。

对此有任何帮助/建议将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

当你说“断断续续”时,这意味着它也有可能发挥作用吗?

这是CRM 2011 Beta吗? Beta引入了CTP中不存在的身份验证问题4.您最近是否在VM上运行Windows / Microsoft Update? Beta本月早些时候通过WU收到了更新。我不知道他们是否对身份验证问题做了任何事情(至少我没有读过任何内容),但是如果你还没有更新,那么值得一试。