Skip to main content

Notifications

Announcements

No record found.

Finance | Project Operations, Human Resources, ...
Unanswered

API in AX 2012: Could not create SSL/TLS secure channel

(1) ShareShare
ReportReport
Posted on by 7

I have a problem in AX 2012 when I call API by Https URL give me this error

(The request was aborted: Could not create SSL/TLS secure channel)

but when I test code in Dynamic 365 It Work

I've tried this:

I used this: System.Net.ServicePointManager::set_Expect100Continue(true);

System.Net.ServicePointManager::set_SecurityProtocol(System.Net.SecurityProtocolType::Tls12);

This My code:

str destinationUrl,requestJson, responseJson;System.Net.HttpWebRequest  request;System.Net.HttpWebResponse  response = new System.Net.HttpWebResponse();    CLRObject      clrObj;System.Byte[]         bytes;System.Text.Encoding     utf8;System.IO.Stream       requestStream, responseStream;System.IO.StreamReader    streamReader;System.Exception        ex;System.Net.WebHeaderCollection httpHeader;System.Net.ServicePoint    servicePt;System.Net.ServicePointManager ServicePointManager;str           byteStr;System.Byte[]      byteArray;System.IO.Stream     stream;System.IO.Stream     dataStream;int secProtocol;boolean ssl3,tls,tls11,tls12,tls13;destinationUrl = 'https://...';requestJson  = @'MyJsonData';try{  new InteropPermission(InteropKind::ClrInterop).assert();  httpHeader = new System.Net.WebHeaderCollection();  clrObj = System.Net.WebRequest::Create(destinationUrl);     request = clrObj;  utf8 = System.Text.Encoding::get_UTF8();  bytes = utf8.GetBytes(requestJson);   request.set_Method(/POST/);  httpHeader.Add(/Client-Id/,/5.../);  httpHeader.Add(/Secret-Key/,/.../);  httpHeader.Add(/Cookie/, /.../);  request.set_Headers(httpHeader);  request.set_ContentType('application/json');  request.set_ContentLength(bytes.get_Length());   //ServicePointManager.Expect100Continue = true;    System.Net.ServicePointManager::set_Expect100Continue(true);  //ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;    System.Net.ServicePointManager::set_SecurityProtocol(System.Net.SecurityProtocolType::Tls12);  secProtocol = System.Net.ServicePointManager::get_SecurityProtocol();  ssl3 = secProtocol == enum2int(System.Net.SecurityProtocolType::Ssl3);  tls = secProtocol == enum2int(System.Net.SecurityProtocolType::Tls);  tls11 = secProtocol == enum2int(System.Net.SecurityProtocolType::Tls11);  tls12 = secProtocol == enum2int(System.Net.SecurityProtocolType::Tls12);  tls13 = secProtocol == 12288;     info(strFmt(/SSL3 enabled: '%1' | TLS enabled: '%2' | TLS1.1 enabled: '%3' | TLS1.2 enabled: '%4' | TLS1.3 enabled: '%5'/, ssl3, tls, tls11, tls12, tls13));     requestStream = request.GetRequestStream();  requestStream.Write(bytes, 0, bytes.get_Length());  response = request.GetResponse();  responseStream = response.GetResponseStream();  streamReader = new System.IO.StreamReader(responseStream);  responseJson = streamReader.ReadToEnd();  info(responseJson);}catch (Exception::CLRError){  ex = CLRInterop::getLastException().GetBaseException();  error(ex.get_Message());}

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

December Spotlight Star - Muhammad Affan

Congratulations to a top community star!

Top 10 leaders for November!

Congratulations to our November super stars!

Tips for Writing Effective Verified Answers

Best practices for providing successful forum answers ✍️

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,391 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,445 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Product updates

Dynamics 365 release plans