我正在尝试在AppHarbor上运行并运行应用程序。大部分时间一帆风顺,但今天我无法连接到我的MySQL数据库。
使用AppHarbor提供的凭据,我使用dbForge Studio Express成功连接到mySQL数据库实例,创建了必要的SQL模式,并使用数据填充了表。现在我尝试使用以下C#代码使用Dapper进行简单查询:
var sqlConnStringBuilder = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["AppHarborMySql"].ConnectionString);
using (var db = new SqlConnection(sqlConnStringBuilder.ConnectionString))
{
db.Open();
// Do database query stuff
return result;
}
但是当我尝试打开数据库连接时,这是我遇到的错误:
System.Data.dll中出现“System.Data.SqlClient.SqlException”类型的异常,但未在用户代码中处理
附加信息:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)
这就是我在Web.config中声明连接字符串的方式:
<connectionStrings>
<add name="AppHarborMySql" connectionString="server=MYDOMAIN.mysql.sequelizer.com;database=MYDBNAME;uid=MYUSERNAME;pwd=MYPASSWORD" providerName="System.Data.SqlClient" />
</connectionStrings>
我错过了一些明显的东西吗我正在使用ASP.NET MVC 5.x和最新版本的Dapper ...提前感谢!
当然,尽管我花了大约一小时的时间进行调查,但在发布问题后我立即发现答案。
对于任何可能遇到同样问题的人:我将MySql.Web NuGet包添加到我的MVC项目中, using MySql.Data.MySqlClient;
添加using MySql.Data.MySqlClient;
到我的页面顶部,然后将我的代码更改为从SqlConnection
指向MySqlConnection
。这是我的工作代码块现在的样子:
using (var db = new MySqlConnection(ConfigurationManager.ConnectionStrings["AppHarborMySql"].ConnectionString))
{
db.Open();
// Do database query stuff
return result;
}