SystemLink Forum

cancel
Showing results for 
Search instead for 
Did you mean: 

File transfer error on PC client (SSL socket failure)

Solved!
Go to solution

I'm experimenting with SystemLink with a cRIO system, PC client, and a SystemLink server. Both the server and client are hosted on the same PC. The PC client and cRIO are both registered with the SystemLink server and show as connected in the System Manager dashboard.

 

The cRIO system is generating and sending files to the server via the Skyline file VIs, and these can be seen in the File Viewer of the server web interface. I'm then trying to use a PC client to monitor for file events, and pull the files off the server for post-processing. The PC client fails when registering for file events with error code -251021, having failed to create an SSL socket (see attached screenshots).

 

Bizarrely this doesn't always fail - If I close the project, close and restart LabVIEW, reopen the project and run the client VI it will (sometimes) work. Similarly a PC reboot works. I've tried playing with the HTTPS settings and NI File Service permissions in the NI Web Server Configuration application but that didn't seem to help.

 

I have noticed if I run the PC client first, then run the cRIO client from source, there's a much higher chance of this working. If I run the cRIO client from source, then the PC client, the SSL error is almost guaranteed.

 

Any ideas on what the problem might be?

 

 




Certified LabVIEW Architect
Unless otherwise stated, all code snippets and examples provided
by me are "as is", and are free to use and modify without attribution.
Download All
0 Kudos
Message 1 of 2
(2,637 Views)
Solution
Accepted by topic author MichaelBalzer

This is a known issue.  When LV connects to an RT target it loads the NI System Configuration API on your host, which unfortunately has a bug that causes SSL to get unloaded in a way that causes the Skyline APIs to fail.  This issue has been fixed in NI System Configuration 17.6, which will release soon.

 

In the meantime you can work around the issue by adding an HTTP Get at the very beginning of your application, which will force SSL to stay loaded in memory.  It doesn't have to be a valid HTTP get.  You can just ignore the error and the rest of your application should continue to work.

0 Kudos
Message 2 of 2
(2,630 Views)