我正在尝试创建一个使用2016 SDK连接到CRM 2016(On Prem)的控制台应用程序。
以下代码失败。 conn.LastCrmError具有以下详细信息,orgService为null。
无法登录Dynamics CRMOrganizationWebProxyClient为null OrganizationServiceProxy为null OrganizationWebProxyClient为null OrganizationServiceProxy为null。
var connectionString = @"Url=http://xxxx/xxxx/; Username=xxxx; Password=xxxx;";
CrmServiceClient conn = new CrmServiceClient(connectionString);
IOrganizationService orgService = conn.OrganizationWebProxyClient != null ? (IOrganizationService)conn.OrganizationWebProxyClient : (IOrganizationService)conn.OrganizationServiceProxy;
使用2015 SDK
在下面运行旧代码时,连接有效 var connectionString = @"Url=http://wxxxxx/xxxx/; Username=xxxxx; Password=xxxxx;";
IOrganizationService orgService2 = new OrganizationService(CrmConnection.Parse(connectionString));
var results = orgService2.Execute(new WhoAmIRequest());
有关如何解决此问题的任何建议?
答案 0 :(得分:0)
Unable to Login to Dynamics CRMOrganizationWebProxyClient is nullOrganizationServiceProxy is nullOrganizationServiceProxy is null
在大多数情况下,当您无法连接到CRM实例时,会抛出此异常。你确定你的连接字符串没问题吗? Here是描述的连接字符串。也许缺少'域名'属性是问题吗?
答案 1 :(得分:0)
芽庄市于2018年1月5日9:58回复 在https://community.dynamics.com/crm/f/117/t/241256
上MS支持解决方案,方法是在连接到CRM之前在代码中添加此行。
ServicePointManager.SecurityProtocol =(SecurityProtocolType)3072; //需要添加参考。 System.Net dll
或 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
答案 2 :(得分:0)
您在连接字符串中缺少AuthType:
AuthType=AD;
答案 3 :(得分:0)
可能的原因是我们尚未指定要在控制台应用程序中使用的安全协议TLS12,并且仍以.NET Framework 4.5.2。为目标。
如果我们使用的是Visual Studio 2017,只需将目标版本更改为.NET Framework 4.6或更高版本。它在内部默认为Tls12,因此我们不需要显式指定它。