2012-02-29 42 views
1

試圖連接到MySQL,用流利的NHibernate和單...並收到此錯誤:單,MySQL和連貫NHibernate和TdsInternalException

TdsInternalException: Server does not exist or connection refused. 

我知道我的MySQL憑據工作,因爲非NHibernate的連接是在成功創建表,讀取數據,等等。只有當我試圖用流利的NHibernate的連接崩潰

這是MySQL連接字符串:

Server=localhost,3306;Database=mydb;uid=theUser;pwd=thePassword 

這裏是流利的NHibernate的配置代碼:

var configuration = Fluently.Configure(); 
configuration.Database(MySQLConfiguration.Standard 
      .ConnectionString(sqlConnectionStr)); 

// mappings 
sessionFactory = configuration.Mappings... so on.... 

這是完全錯誤:

[exec] !! An error has occurred. The error is: 
[exec] FluentNHibernate.Cfg.FluentConfigurationException: An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail. 
[exec] 
[exec] ---> System.Data.SqlClient.SqlException: Server does not exist or connection refused. ---> Mono.Data.Tds.Protocol.TdsInternalException: Server does not exist or connection refused. ---> System.Net.Sockets.SocketException: Connection refused 
[exec] at System.Net.Sockets.Socket+SocketAsyncResult.CheckIfThrowDelayedException() [0x00000] in <filename unknown>:0 
[exec] at System.Net.Sockets.Socket.EndConnect (IAsyncResult result) [0x00000] in <filename unknown>:0 
[exec] at Mono.Data.Tds.Protocol.TdsComm..ctor (System.String dataSource, Int32 port, Int32 packetSize, Int32 timeout, TdsVersion tdsVersion) [0x00000] in <filename unknown>:0 
[exec] --- End of inner exception stack trace --- 
[exec] at Mono.Data.Tds.Protocol.TdsComm..ctor (System.String dataSource, Int32 port, Int32 packetSize, Int32 timeout, TdsVersion tdsVersion) [0x00000] in <filename unknown>:0 
[exec] at Mono.Data.Tds.Protocol.Tds..ctor (System.String dataSource, Int32 port, Int32 packetSize, Int32 timeout, TdsVersion tdsVersion) [0x00000] in <filename unknown>:0 
[exec] at Mono.Data.Tds.Protocol.Tds70..ctor (System.String server, Int32 port, Int32 packetSize, Int32 timeout, TdsVersion version) [0x00000] in <filename unknown>:0 
[exec] at Mono.Data.Tds.Protocol.Tds80..ctor (System.String server, Int32 port, Int32 packetSize, Int32 timeout) [0x00000] in <filename unknown>:0 
[exec] at Mono.Data.Tds.Protocol.TdsConnectionPoolManager.CreateConnection (Mono.Data.Tds.Protocol.TdsConnectionInfo info) [0x00000] in <filename unknown>:0 
[exec] at Mono.Data.Tds.Protocol.TdsConnectionPool.GetConnection() [0x00000] in <filename unknown>:0 
[exec] at System.Data.SqlClient.SqlConnection.Open() [0x00000] in <filename unknown>:0 
[exec] --- End of inner exception stack trace --- 
[exec] at System.Data.SqlClient.SqlConnection.Open() [0x00000] in <filename unknown>:0 
[exec] at NHibernate.Connection.DriverConnectionProvider.GetConnection() [0x00000] in <filename unknown>:0 
[exec] --- End of inner exception stack trace --- 
+0

這似乎很奇怪,SqlConnection在這裏得到了應用 - 你確定你沒有在某處使用MS SQL配置嗎? – AlexCuse 2012-02-29 14:26:19

+0

我在使用TcpClient時遇到了同樣的異常。它會在'await tcpClient.ConnectAsync(ip,port)'中引發這個問題,但如果我在這個語句之前引入一個1秒的延遲,它會正常工作! – Vaibhav 2015-11-10 12:15:54

回答

2

它應該是:

Server=localhost;Port=3306;Database=mydb;Uid=theUser;Pwd=thePassword; 

而不是(的;代替,

Server=localhost,3306;Database=mydb;uid=theUser;pwd=thePassword