Last Night I Created a new Organisation and Connected it with console app an then I faced a strange issue in CRM v9 while connecting to Org Service with D365 through web API. It was perfectly working before that. If any one faces the below issue then try the solution given below.

Issue : Connection to CRM V9 / D365 from console application or Custom Web application failed with exception

Error Observed:

Message : "One or more errors occurred." 
Source : "mscorlib"


Its all because of the latest update in the Microsoft TSL(Transport Security Layer) Protocol in SDK assemblies..Microsoft allowed the TSL connection 1.0  and 1.1 for the browsers or client to connect the CRM org.Now Microsoft will support only TSL 1.2 or above going forward(Reference) . If you are connecting your org with the old version of plugin registration tool , then you may face this issue


Include the below reference to your project(to global config file the line before where your client credentials is configured) and change the .Net framework to 4.6.1 and rebuild 

"ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12"

Code Snippet :

//Create an HTTP client to send a request message to the CRM Web service.
                using (HttpClient httpClient = new HttpClient(messageHandler))
                    //Specify the Web API address of the service and the period of time each request
                    // has to execute.
                    httpClient.BaseAddress = new Uri(serviceUrl);
                    httpClient.Timeout = new TimeSpan(0, 2, 0);  //2 minutes

                    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

                    //Send the WhoAmI request to the Web API using a GET request.
                    var response = httpClient.GetAsync("api/data/v9.0/WhoAmI",

                    if (response.IsSuccessStatusCode)
                        //Get the response content and parse it.
                        JObject body = JObject.Parse(response.Content.ReadAsStringAsync().Result);
                        Guid userId = (Guid)body["UserId"];
                        Console.WriteLine("Your system user ID is: {0}", userId);
                        Console.WriteLine("The request failed with a status of '{0}'",

Happy Coding 😊