AppHarbor:通过 ASP.NET MVC 5 + Dapper 连接到 MySQL 数据库
AppHarbor: Connecting to a MySQL DB via ASP.NET MVC 5 + Dapper
我正在尝试在 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;
}
但这是我 运行 在尝试打开数据库连接时遇到的错误:
An exception of type 'System.Data.SqlClient.SqlException' occurred in
System.Data.dll but was not handled in user code
Additional information: A network-related or instance-specific error
occurred while establishing a connection to SQL Server. The server was
not found or was not accessible. Verify that the instance name is
correct and that SQL Server is configured to allow remote connections.
(provider: Named Pipes Provider, error: 40 - Could not open a
connection to 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 package 添加到我的 MVC 项目,将 using MySql.Data.MySqlClient;
添加到我的页面顶部,然后更改了我的从 SqlConnection
指向 MySqlConnection
的代码。这是我的工作代码块现在的样子:
using (var db = new MySqlConnection(ConfigurationManager.ConnectionStrings["AppHarborMySql"].ConnectionString))
{
db.Open();
// Do database query stuff
return result;
}
我正在尝试在 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;
}
但这是我 运行 在尝试打开数据库连接时遇到的错误:
An exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll but was not handled in user code
Additional information: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to 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 package 添加到我的 MVC 项目,将 using MySql.Data.MySqlClient;
添加到我的页面顶部,然后更改了我的从 SqlConnection
指向 MySqlConnection
的代码。这是我的工作代码块现在的样子:
using (var db = new MySqlConnection(ConfigurationManager.ConnectionStrings["AppHarborMySql"].ConnectionString))
{
db.Open();
// Do database query stuff
return result;
}