尝试连接到CRM 2011 Web服务时发生意外错误。这里的背景:CRM 2011 SecurityNewiationException尝试访问Web服务
连接字符串(敏感信息已删除):"ServiceUri=https://crmdomain.com/OrgName/XRMServices/2011/Organization.svc; Url=https://crmdomain.com/OrgName; Username=appusername; Password=hidden"/>
创建连接如下:
- 解析康恩串入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发生 消息= 的呼叫者未被该服务认证。 源= mscorlib程序 堆栈跟踪: 服务器堆栈跟踪: 在System.ServiceModel.Security.IssuanceTokenProviderBase'1.DoNegotiation(时间跨度超时) 在System.ServiceModel.Security.SspiNegotiationTokenProvider.OnOpen(时间跨度超时) 在System.ServiceModel .Security.WrapperSecurityCommunicationObject.OnOpen(TimeSpan超时)
...等等。
The InnerException显示IsSenderFault=True
和IsPredefinedFault=True
。
这是怎么回事?
如果您使用ServerConnection助手类来构建连接字符串,这仍会失败吗? – Josh 2011-05-20 16:34:28