Dynamics 365-当OrganizationServiceProxy是Null的时候

  很多从事D365研发工做的朋友,可能或多或少都经历过这么一种状况,使用CrmServiceClient对象初始化一个实例,而后发现OrganizationServiceProxy对象是null。不只如此,还可能碰到的状况是封装好的Common构造,链接一个CRM环境时好用,可是链接另外一个却很差用。下面是针对这样的状况,总结的一些注意事项,用以尝试解决问题:ui

  1. TLS1.2的指定是否添加了。对于使用最新版本CRM dll的开发来讲,这不是个问题,由于.Net Framework 4.6.2已经把TLS1.2做为默认选项了。可是若是你的版本仍是旧的,那么就须要明确指定它了,具体的指定方式是这样的:code

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

  

  2. 通常咱们在初始化CrmServiceClient对象的时候呢,传入的参数是一个ConnectionString。这个ConnectionString长什么样,你们能够上网查。这里我要说的是String里有几个参数须要注意,一个Domain,一个Username,还有个authType。对象

  a. 在链接OP环境的时候,建议使用Domain和Username都带上的String做为参数;在链接OL环境的时候,建议仅使用Username参数,而且赋值方式为xxx@xxx的格式blog

  b. 无论哪一种链接方式,ConnectionString都带上authType参数,并正确赋值开发

 

  3. dll版本升级或者.Net Framework升级,更具体点就是对dll以及.Net Framework版本匹配的检查get

  无论是dll版本改变仍是Framework版本变化,都须要注意新版本的dll对.Net Framework的要求,还有对依赖项dll的要求。举个最近碰到的例子,最新版本的CRM dll须要Framework的版本是4.6.2,在把Framework升级之后,发现ServiceProxy是null,通过一系列的排查以后,发现是某些系统dll的引用版本太低,以及nuget上以前添加的其余dll版本太低致使的,可是这些问题都不会在build阶段给你暴露出来。it

  若是碰到1和2都知足的状况下,ServiceProxy仍是构造失败,那么看看error message是若是描述失败缘由的。在构造CrmServiceClient对象以后,若是存在什么异常信息,通常会在LastCrmException属性里暴露出来,因此还能够看看这里的信息来诊断问题。io

  目前博主碰到的问题大体是这几个方面的,若是再遇到其余状况,会继续进行更新。ast

相关文章
相关标签/搜索