2017-07-19 4 views
0

J'essaie d'avoir une connexion stable à une base de données MySQL hébergée sur Amazon Web Services. Régulièrement lors du démarrage de l'application, je vais faire l'exception:Échec de la prise de contact en raison d'un format de paquet inattendu

Handshake a échoué en raison d'un format de paquet inattendu

Ceci est une application WinForm C# en utilisant MySQL.Data.dll V6.9.9

ici est mon code pour la connexion:

 using (var conn = new MySqlConnection(m_connectionString)) 
     { 
      try 
      { 
       conn.Open(); 
       Console.WriteLine("Connected to database"); 
      } 
      catch (MySqlException ex) 
      { 
       validConnectionFound = false; 
       Console.WriteLine(ex); 
       MessageBox.Show("Unable to connect to Database. Check your network connection and try again", "Database connection Not Found"); 
      } 
      catch (CryptographicException ex) 
      { 
       validConnectionFound = false; 
       MessageBox.Show("Cryptographic Exception: " + ex.Message); 
       Environment.Exit(0); 
      } 
      catch(IOException ex) 
      { 
       validConnectionFound = false; 
       DebugTrace.TraceWrite(m_defaultTraceSource, TraceEventType.Error, "Incorrect certificate. Please update security certificate. Exception: " + ex.Message); 
       MessageBox.Show("IO Exception: " + ex.Message); 
       Environment.Exit(0); 
      } 
     } 

ma chaîne de connexion est dans le format suivant:

"user id=user;password=1234;server=amazonserver.com;database=myDatabase;convertzerodatetime=True;port=3306;sslmode=VerifyCA" 

J'ai essayé les connexions sans fil et câblées, en changeant le mode SSL requis (VerifyCA, Required, VerifyFull, None), et en ajoutant Amazon CA à mes certificats racines approuvés de mes ordinateurs.

Tout renseignement sur les raisons pour lesquelles je reçois cette exception est apprécié.

Répondre

0

Il s'avère que le problème n'était pas lié au code. Après avoir reniflé des paquets avec Wireshark, j'ai trouvé que le problème était avec un commutateur réseau défectueux qui perdait des paquets.