C#+ MySql + SSL ="由于意外的数据包格式而导致握手失败"

时间:2015-03-16 14:10:10

标签: c# mysql

我正在尝试从简单的.NET 4.0 C#控制台应用程序连接到MySql数据库:

using MySql.Data.MySqlClient;

namespace MySqlTest
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var connection = new MySqlConnection(
                "Server=xxx.xxx.xxx.xxx;Database=my_database;Uid=my_login;Pwd=my_password;" +
                "CertificateFile=C:\\Users\\myuser\\Documents\\Visual Studio 2013\\Projects\\Sandbox\\MySqlTest\\certificate.pfx;" +
                "CertificatePassword=certificate_password;SSL Mode=Required;"))
            {
                connection.Open();
            }
        }
    }
}

当我运行应用程序时,我收到一个System.IO.IOException:“由于意外的数据包格式,握手失败”。

我已经从其他3个文件中创建了我的.pfx文件,首先运行此命令:

.\openssl.exe pkcs12 -export -out certificate.pfx -inkey user.key -in user.crt -certfile ca.crt

第二次尝试时,我将所有三个文件转换为.pem,然后运行相同的命令(http://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-ssl.html - 请参阅“创建用于.NET客户端的证书文件”部分):

.\openssl.exe pkcs12 -export -out certificate.pfx -inkey user.pem -in user.pem -certfile ca.pem

我使用相同的三个文件从MySql Workbench连接到数据库并且它工作正常。我不知道为什么我的应用程序会出现此异常。 有没有人有任何想法?

我正在使用从NuGet下载的MySql.Data 6.9.6驱动程序。

谢谢!

0 个答案:

没有答案