【问题标题】:MySQL Connector/Net with SSL from WCF Service fails来自 WCF 服务的带有 SSL 的 MySQL 连接器/网络失败
【发布时间】:2011-08-16 12:38:54
【问题描述】:

到目前为止,我正在尝试实现以下目标,但没有成功:
使用 Connector/Net 从我的 WCF 服务(Server 2008 R2 上的 IIS 7.5 中的主机)到外部 MySQL 数据库 (v5.0) 的基于证书的 SSL 连接。

托管 mysql 数据库的人向我发送了三个 .pem 文件,我使用 OpenSSL 将它们合并为一个 .pfx,如 Using SSL with MySQL Connector/Net 中所述。

但是当我尝试使用基于文件的方法进行连接时,我遇到了一个异常,告诉我 mysql 5.0 不支持基于文件的模式。

所以我只剩下一个选择:基于商店的证书。
因此,我在服务器(托管我的 wcf 服务)上为“本地计算机”安装了证书,并将其添加到“个人证书”中。然后调整连接字符串后包含

"SSL Mode=Required;Certificate Store Location=LocalMachine;"

我再次进行了测试,但出现了一些奇怪的身份验证/凭据错误。

google了一番后,发现可能是证书访问权限不足的问题。所以我按照here 解释的步骤操作,并使用工具 WinHttpCertCfg 授予帐户“NetworkService”的访问权限,我认为该帐户用于托管我的服务。

不幸的是,我仍然遇到以下异常:

Message: Out of sync with server
Source: MySql.Data
Type: MySql.Data.MySqlClient.MySqlException
StackTrace:
   bei MySql.Data.MySqlClient.NativeDriver.ReadOk(Boolean read)
   bei MySql.Data.MySqlClient.NativeDriver.AuthenticateNew(Boolean reset)
   bei MySql.Data.MySqlClient.NativeDriver.Authenticate(Boolean reset)
   bei MySql.Data.MySqlClient.NativeDriver.Open()
   bei MySql.Data.MySqlClient.Driver.Open()
   bei MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
   bei MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
   bei MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
   bei MySql.Data.MySqlClient.MySqlPool.GetConnection()
   bei MySql.Data.MySqlClient.MySqlConnection.Open()
   bei System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   bei System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   bei System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
   bei AtlasService.AtlasService.getChildNodes(UInt32 nid, Language lang, Boolean withEmpty, DateFormats format)

有谁知道这里的问题是什么,或者我做错了什么? 任何帮助将不胜感激。 提前致谢

/编辑:我应该补充一点,我使用 mysql 命令行工具和工作台(使用单独的 .pem 文件)成功测试了 ssl 连接

【问题讨论】:

    标签: mysql wcf ssl


    【解决方案1】:

    好吧,经过数小时的挫折,我找到了解决方案。
    看来是connector/net lib的最新版本(v6.4.3)或者ssl与正在使用的connector/net lib和mysql server的版本组合有问题。

    将连接器/网络库降级到 v6.3.7 后一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      • 2011-04-08
      • 2014-09-29
      • 2019-03-09
      相关资源
      最近更新 更多