1. Roger Ingbretson
  2. PowerBuilder
  3. Wednesday, 10 May 2017 20:00 PM UTC

I have a VS 2015 C# program that interfaces with Authorize Dot Net using TLS 1.2 as the default security protocol.  AuthDotNet has two environments.  The Test environment only allows TLS 1.2.  Production will allow both TLS 1.1 and TLS 1.2.

The VS 2015 Console application calls a VS 2015 Class object to interface with AuthDotNet and works properly in both the Test and Production environments.

In Powerbuilder I create an OLE object for the VS 2015 Class object.  Powerbuilder works properly when interfacing with the AuthDotNet Production environment and crashes when interfacing with the Test environment.  My guess is that Powerbuilder is somehow forcing TLS 1.1 as the security protocol.

Can anyone give me a suggestion on how to fix or curcumvent this issue?

 

Chris Pollach Accepted Answer Pending Moderation
  1. Wednesday, 10 May 2017 20:11 PM UTC
  2. PowerBuilder
  3. # 1

Hi Roger;

   I would like to suggest that you try and use a TRY..CATCH block around your code TLS code. I find that quite often in the Exception object within the catch, that more detailed information is present on the issue around the external call.

HTH

Regards ... Chris

Comment
  1. Roger Ingbretson
  2. Wednesday, 10 May 2017 22:12 PM UTC
Thanks for the suggestion Chris.  Ultimately that and a combination of write to log statements in the C# code let me confirm my original guess.



The C# class object created with a 4.6 framework will default to TLS 1.2.  So if you call that object from within any other 4.6 framework code, TLS 1.2 will be used.



If however, you call the class object from anything such as PB 12.5, the called object will use whatever TLS version is preferred by the calling object.  The solution is to force TLS 1.2 in the C# class object.



 



Thanks for you help.

  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.