fvancrae
(Frederic Vancraeyveldt)
September 29, 2025, 8:30am
1
Very rarely we encounter a hang issue in a .NET RO client
The .NET RO IpHttpClientChannel (+tls) client connects to a .NET RO server
For unknown reason the client hangs in the call (Dispatch does not return)
The server is fully operational. Other clients don’t have issues making the same call.
In the screenshots below you see the issue occuring on a development machine while the client is hooked to the VS debugger.
The clientchannel has a timeout configured.
Any idea why the timeout does not work?
Is there a way to prevent this?
Are there any tests you want me to do while the debugger is open?
EvgenyK
(Evgeny Karpov)
September 29, 2025, 8:55am
2
Hi,
1st idea - it may be something with TLS.
e.g. some issue is happened inside code that processes TLS and it could be “looped” inside that code.
As I understand, you won’t be able to reproduce this issue with non-TLS version because original issue is reproduced very rarely…
fvancrae
(Frederic Vancraeyveldt)
September 29, 2025, 9:07am
3
Indeed, changing both server and client and waiting long enough to ensure it fails without TLS is a big effort. Furthermore I do not wish to drop TLS, it is a cloud server.
I want to have a solution with transport layer encryption
EvgenyK
(Evgeny Karpov)
September 29, 2025, 9:57am
4
Hi,
try to use specific TLS version, like Tls13. will it work more stable?
var server := new ApplicationServer('ServerApp2');
..
server.NetworkServer.UseTLS := true;
server.NetworkServer.TlsProtocols := 'Tls13';
var ch := new RemObjects.SDK.IpHttpClientChannel();
..
ch.SslOptions.Enabled := true;
ch.SslOptions.UseTls := true;
ch.SslOptions.TlsProtocols := 'Tls13';
fvancrae
(Frederic Vancraeyveldt)
September 29, 2025, 12:42pm
5
Maybe it is a good idea to first check what is used
Can I determine/check this via my debugger?
Note:My server side has this
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
So I assume the connection is TLS 1.2.
EvgenyK
(Evgeny Karpov)
September 29, 2025, 12:52pm
6
Hi,
by default, standard value ("Tls,Tls11,Tls12,Tls13") is used.
you can check value of ch.SslOptions.TlsProtocols.
Note: TlsProtocols property was added in .1611.
I suggest to set the same value on client-side. in your case this is Tls12.