由于意外的数据包格式导致握手失败

时间:2017-07-19 20:12:51

标签: c# mysql amazon-rds

我正在尝试与亚马逊网络服务上托管的MySQL数据库建立稳定的连接。在启动应用程序时,我会定期获得例外:

握手由于意外的数据包格式而失败

这是使用MySQL.Data.dll V6.9.9的WinForm C#应用程序

以下是我的连接代码:

        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);
            }
        }

我的连接字符串采用以下格式:

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

我尝试过无线和有线连接,更改了所需的SSL模式(VerifyCA,必需,VerifyFull,无),并将Amazons CA添加到我的计算机信任的根证书中。

对于我获得此异常的原因的任何见解表示赞赏。

1 个答案:

答案 0 :(得分:1)

原来这个问题与代码无关。在使用Wireshark嗅探数据包之后,我发现问题是网络交换机出现故障而丢失数据包。