2011-08-16 51 views
0

我試圖實現以下目前沒有成功:
基於證書的SSL連接到外部MySQL數據庫(v5.0)從我的WCF服務(hostet in Server 2008 R2上的IIS 7.5)使用Connector/Net。從WCF服務失敗的MySQL連接器/網絡與SSL SSL證書

主持mysql db的人給我發了三個.pem文件,我使用OpenSSL將它們合併爲一個.pfx,如Using SSL with MySQL Connector/Net中所述。

但是,當我試圖使用基於文件的方法進行連接時,我得到一個異常,告訴我mysql 5.0不支持基於文件的模式。

所以我只剩下一個選項:基於商店的證書。
因此,我在「本地計算機」的服務器上安裝了證書(託管我的wcf服務),並將其添加到「個人證書」中。然後調整連接字符串以包含後

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

我再次測試,與一些weired認證/憑據錯誤。

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命令行工具和工作臺SSL連接(與單獨的.pem文件)

回答

0

確定後的無奈小時,我找到了解決辦法。
看來,連接器/網絡庫的最新版本(v6.4.3)或ssl與使用中的connector/net lib和mysql服務器版本的組合存在問題。

將連接器/網絡庫降級至v6.3.7後,一切正常。

相關問題