通过wcf服务调用时数据库连接不起作用

时间:2016-02-17 18:29:21

标签: c# mysql wcf exception

我的应用程序有一个带有工作本地数据库的DAL层。我有与db交互的测试,它们工作正常。

我还有一个wcf服务,它使用我的DAL提供的功能。但是,当客户端应用程序调用服务时,不会检索任何数据。相反,我得到一个例外:

  

消息="底层提供程序在打开时失败。"

     

" System.Data.Entity的"

     

StackTrace =" at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean   openCondition,DbConnection storeConnectionToOpen,DbConnection   originalConnection,String exceptionCode,String attemptsOperation,   布尔和放大器; closeStoreConnectionOnFailure)\ r \ n ...

内部异常:

  

"无法连接到任何指定的MySQL主机。"

     

{"没有这样的主人知道"}

     

" at MySql.Data.MySqlClient.NativeDriver.Open()\ r \ n在MySql.Data.MySqlClient.Driver.Open()\ r \ n at   MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder   设置)\ r \ n at   MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()\ r \ n at   MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()\ r \ n at   MySql.Data.MySqlClient.MySqlPool.GetConnection()\ r \ n at   MySql.Data.MySqlClient.MySqlConnection.Open()\ r \ n at   System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(布尔   openCondition,DbConnection storeConnectionToOpen,DbConnection   originalConnection,String exceptionCode,String attemptsOperation,   布尔和放大器; closeStoreConnectionOnFailure)"

我确认我的连接字符串与我的测试使用的相同。

<add name="loansEntities" connectionString="metadata=res://*/LoansDbModel.csdl|res://*/LoansDbModel.ssdl|res://*/LoansDbModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost:3306;User Id=root;password=123456;database=dbname;Persist Security Info=True&quot;" providerName="System.Data.EntityClient"/>

数据库是本地mysql数据库,用户和数据库都存在。 这些服务也是本地的,在IIS Express中运行。

为什么我会收到此异常?

1 个答案:

答案 0 :(得分:0)

这可能是由于几个原因,请检查以下几点:

  • 如果您在连接中使用System.Data.SqlClient,请进行更改 它到System.Data.Odbc
  • 检查数据库名称
  • 检查您的端口是否打开。 (可能是3306)
  • 更改my.ini文件中的绑定地址(从127.0.0.1更改为0.0.0.0)
  • 检查用户尝试连接服务器是否具有必要的权限