尝试连接到 CRM 2011 Web 服务时出现意外错误。这是背景:
连接字符串(已删除敏感信息):"ServiceUri=https://crmdomain.com/OrgName/XRMServices/2011/Organization.svc; Url=https://crmdomain.com/OrgName; Username=appusername; Password=hidden"/>
创建连接如下:
- 将 conn 字符串解析成 CRMConnection:(
var conn = Microsoft.Xrm.Client.CrmConnection.Parse(connString);
此时,对象中的属性CrmConnection
看起来是正确的,包括 ClientCredentials) - 创建组织代理:
var orgProxy = new OrganizationServiceProxy(conn.ServiceUri, conn.HomeRealmUri, conn.ClientCredentials, conn.DeviceCredentials);
- 创建数据上下文:
var context = new MyContext(orgProxy);
此时,从 中检索任何数据时context
,会发生以下 WCF 异常:
System.ServiceModel.Security.SecurityNegotiationException 发生 Message=调用者未通过服务的身份验证。 Source=mscorlib StackTrace:服务器堆栈跟踪:在 System.ServiceModel.Security.IssuanceTokenProviderBase'1.DoNegotiation(TimeSpan timeout) at System.ServiceModel.Security.SspiNegotiationTokenProvider.OnOpen(TimeSpan timeout) at System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(时间跨度超时)
... 等等。
InnerException显示IsSenderFault=True
和IsPredefinedFault=True
。_
这里发生了什么?