We are migrating our pb applications to PB 2021 from PB 11.5. WE have 8-10 web applications that are being called from the pb 11.5 code base. In 11.5 we used the Web Service Proxy project to call our web services using SoapConnection (using pbwsclient115.dll). Since this is now obsolete in 2021 I assume we will need to use httpclient from object pbsoapclient.dll. I’ve reviewed the doc ‘https://community.appeon.com/index.php/articles-blogs/tutorials-articles/2-powerbuilder/236-call-soap-web-services-using-httpclient-object’ and created the referenced webservice ‘Add’ to add two numbers together.
Our apps are configured with one or more client machines pointed to an app server which contains the iis applications. Using the sample code for the web service and pb code I’m only able to successfully call the ‘Add’ web service method if the call is being made on that same machine the web service is on. When I attempt the ‘Add’ call from a different machine I always get an ‘Internal Server Error’ and the text points to ‘/Add’ part of the url (ls_url ='http://azstdevpb1/WebService/WebService.asmx/Add'). Is there any sample code to successfully call this method when it is being served from an app server. Most of the time our customers will not be on the machine that hosts the web services.
I’ve also noticed that although the web server proxy is now obsolete all of our pb code calls that were migrated to 2021 pb work in the IDE with newly generated proxies in pb2021. However, when our applications are built we’ve seen the first x amount (20-30) web service calls be successful. After a certain threshold or something else I’ve been unable to identify yet the next web service call crashes our app and it points to PBVM.dll. I know this is obsolete but I’m wondering if anything sounds familiar to anyone.
Thanks.
For your question: “The same web service request from client machine two, to machine one could potentially use a different protocol and argument list. Is this true?”
Yes, you can refer to the following link for the detail.
https://www.appeon.com/httpclient-restclient-cannot-connect-tls1.0-server
https://community.appeon.com/index.php/qna/q-a/httpclient-restclient-to-old-internal-tls1-0-server
If the current Web API only supports TLS1.0 and your client A support it too, then the call to the API will work. But if your client B doesn't support this protocol or has some other restrictions on accessing this API, then you will have the issue.
BTW, you can also Google some other solutions online:
http://net-informations.com/q/mis/500.html
For the other issue, I mean to suggest you install the PowerBuilder .NET Components generated using the PowerBuilder Runtime Packager:
If you are now using PB2017R3 or higher, the .Net install MSI has been removed. Here is how to get it back (it's actually still there) ...
1) Create a PBPack.INI file in the "C:\Program Files (x86)\Appeon\Shared\PowerBuilder" folder
2) Add the following to the INI file ...
[Packager]
DotNetComponents=1
3) Start the PB Packager utility and you should now see the ".Net Component" installation.
4) Create the .Net MSI & run this on the new IIS machine where there is no PB installed.
https://community.appeon.com/index.php/qna/q-a/net-web-service-error-on-sybase-powerbuilder-interop
Regards,
Andreas.
Thanks for catching that. You are right. The pbpack.ini only works for PB 2017 R3 to PB 2021.
Regards,