Kinetic 2021.2 external WCF coding issue

We are upgrading from 10.2.300 to Kinetic 2021.2. We have external applications that use WCF using vb.net and were told by several people at Insights that WCF coding would work talking with 2021.2. In fact, we were told it was the last version that the .Net protocol would work. We will begin the REST code conversion after 2021.2 goes live.
In some of our custom stand-alone programs, we have used Adapters to talk with Kinetic. These are updating well to the Kinetic world.
We have many programs in which we have used BO Proxies – these are not compiling and have issues.
An example of a program not working is below.
This code is working without issue on our 10.2.300 system.
I did add the two Epicor.Ice.Shared.Wcf.x references from suggestions found in this user group and it did eliminate many errors.
Thank you very much for any thoughts or to just confirm we need to change the coding method to just use Adapters,
Dave Beberman
ERP Manager
Ferguson Perforating

Example code snippet showing issue:



Looks like the signature has changed:

Using jobentryClient = New Erp.Proxy.Bo.JobEntryImpl(uri, userId, password, authenticationMode)

AuthenticationMode seems to be Windows, AzureAD, IdentityProvider, Token or Basic.

Thank you Doug,

The clientcredentials appear to be readonly.

Thank you for the help so far,
I’ve gotten the code to compile but now have another block.
Has anyone seen this ?

In form 1:
Imports System.ServiceModel.Description
Friend gclientCreds As New ClientCredentials
Private Sub SetClientCredentials()
gclientCreds.UserName.UserName = “X”
gclientCreds.UserName.Password = “Y”
End Sub
In form 2:
Dim appServer = New Uri(“net.tcp://xxxxxxx/ERPAPPSRV/erp/bo/jobentry.svc”)
Using jobentryClient = New Erp.Proxy.BO.JobEntryImpl(wcfBinding, appServer, form1.gclientCreds)
Dim jobentryDataSet As New Erp.BO.JobEntryDataSet

    Try
            jobentryDataSet = jobentryClient.GetByID(txtJobNum.Text)  ‘set to a job # in main form
            '
    Catch ex As Exception
            MsgBox(ex.InnerException.Message.ToString)
   End Try

When the errorless compiled program runs, a job # is chosen in Form1 then control gets passed to form 2 to do the lookup.
The exception caught by the Catch verb is

image

The inner exception has the same message so no help there.