EldoS | Feel safer!

Software components for data protection, secure storage and transfer

TElSimpleSSLClient - Connection Timeout

Also by EldoS: Rethync
The cross-platform framework that simplifies synchronizing data between mobile and desktop applications and servers and cloud storages
#24595
Posted: 04/16/2013 09:19:06
by Sean  (Basic support level)
Joined: 04/16/2013
Posts: 4

Hi,

I have an application that connects to a feed via the TElSimpleSSLClient. Here's the code I'm using to connect:

Code
try
{
   var client = new TcpClient(_host, _port);

   _stream = new SBSimpleSSL.TElSimpleSSLClient();

   _stream.Address = _host;
   _stream.Port = _port;

   _stream.SetCipherSuite(30, true);

   _sslReader = new StreamReader(client.GetStream());

   _stream.Open();
}
catch (Exception e)
{
}


This works fine when I run it on my own box (Windows XP). However, when I run it on a Windows Server 2008 R2 machine I get the following exception from the _stream.Open() line everytime.

Exception.Type: EElSocketError
Exception.Source: SecureBlackbox.SSLClient
Exception.Message: Connection timeout
Exception.StackTrace:

! at SBSimpleSSL.TElCustomSimpleSSLClient.DoMessageLoop(Boolean NoPeek)
at SBSimpleSSL.TElCustomSimpleSSLClient.Open()
at Plutus.Feeds.MyProxy.Connect()

Would anyone be able to suggest a reason this might be happening?
#24596
Posted: 04/16/2013 09:22:48
by Eugene Mayevski (EldoS Corp.)

This code doesn't make any sense to me. But anyway, if it works, then the problem is not in the code. Most likely you are not deploying dependent modules (assemblies, DLLs) to the target system. Please review the deployment instructions in the help file and ensure that you deploy all required modules.


Sincerely yours
Eugene Mayevski
#24597
Posted: 04/16/2013 09:43:48
by Sean  (Basic support level)
Joined: 04/16/2013
Posts: 4

Hi Eugene,

Thanks for the quick response.

In the 'Deployment of .NET edition' instructions it says:

To deploy SecureBlackbox components with your project, use your regular installer tool. DO NOT USE SecureBlackbox installation package (which you downloaded and installed for development) for deployment purposes.

What does it mean - regular installer tool? I have included the following DLLs in the installation folder of the app:

SecureBlackbox.dll
SecureBlackbox.SSLClient.dll
SecureBlackbox.SSLCommon.dll

Is there something else I need to do?
#24598
Posted: 04/16/2013 10:05:31
by Eugene Mayevski (EldoS Corp.)

These assemblies should be enough.

Let's do the following tests then:

1) try running "telnet <your host> <your port>" on the machine you did deployment to. Can you connect to the server in this case?

If you can't connect, then of course you are having connectivity problems (either the firewall issue or ... ).

2) I don't see that you create OnCertificateValidate event handler in your code. This event handler is required - normally the exception should be thrown if you don't set an event handler. Please create the handler and put a breakpoint there. If the breakpoint works, this means that the component connected (socket connection was made) and started SSL/TLS handshake. Then we'll check further.


Sincerely yours
Eugene Mayevski
#24599
Posted: 04/16/2013 10:39:26
by Sean  (Basic support level)
Joined: 04/16/2013
Posts: 4

I am able to connect to the server via Telnet.

I'm not 100% what you mean regarding the OnCertificateValidate. I have added the following:

Code
private void OnValidateCertificate(object Sender, TElX509Certificate X509Certificate, ref bool Validate)
{
       _logger.Error("Validate Certificate Reached");
}


and before the _stream.Open() I have added:

Code
_stream.OnCertificateValidate += OnValidateCertificate;


Is this correct? It isn't hitting the OnValidateCertificate method even on the machine where it is connecting successfully.
#24600
Posted: 04/16/2013 10:56:27
by Eugene Mayevski (EldoS Corp.)

Yes, the code is correct. Looks like TElSocket can't connect.

There's one more thing to check:

create an instance of TElSocket class, setup its Address and Port properties and call Connect() method. See if it connects ok. If it does, then there's something with TLS handshake under the hood. If the socket doesn't connect, then it's a firewall or networking issue on the computer, and it's beyond our control. You can try connecting with .NET's Socket class as well (this class is used internally by TElSocket).

In other words we need to narrow down the place where connection fails.

Other things to check (just to ensure that they are correct):
* you call SetLicenseKey and pass a valid license key to it (it can be evaluation key or time-limited trial key).
* the value of address doesn't have extra spaces in the beginning or the end - the component doesn't trim the address.
* IPv6 is not used or, if used, the system is configured properly. Maybe it makes sense to disable IPv6 in the component.


Sincerely yours
Eugene Mayevski
#24602
Posted: 04/16/2013 11:33:05
by Sean  (Basic support level)
Joined: 04/16/2013
Posts: 4

Thanks for the suggestions Eugene.

I will try them out and get back to you if I'm still having problems.
Also by EldoS: CallbackDisk
Create virtual disks backed by memory or custom location, expose disk images as disks and more.

Reply

Statistics

Topic viewed 1592 times

Number of guests: 1, registered members: 0, in total hidden: 0




|

Back to top

As of July 15, 2016 EldoS Corporation will operate as a division of /n software inc. For more information, please read the announcement.

Got it!