新的CRM连接代码导致错误

时间:2016-09-30 06:43:36

标签: dynamics-crm

我正在尝试创建一个使用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());

有关如何解决此问题的任何建议?

4 个答案:

答案 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,因此我们不需要显式指定它。

https://nishantrana.me/2018/10/20/unable-to-login-to-dynamics-crmorganizationwebproxyclient-is-nullorganizationwebproxyclient-is-null-error-while-using-crmserviceclient/