AppHarbor: connexion à une base de données MySQL via ASP.NET MVC 5 + Dapper

appharbor asp.net-mvc dapper mysql

Question

J'essaie de lancer une application sur AppHarbor. La navigation a été fluide pour la plupart, mais aujourd'hui, je n'arrive pas à me connecter à ma base de données MySQL.

À l'aide des informations d'identification fournies par AppHarbor, j'ai réussi à me connecter à l'instance de base de données mySQL à l'aide de dbForge Studio Express, à créer le schéma SQL nécessaire et à remplir les tables avec des données. J'essaie maintenant d'utiliser le code C # suivant pour effectuer une requête simple à l'aide de Dapper:

var sqlConnStringBuilder = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["AppHarborMySql"].ConnectionString);

using (var db = new SqlConnection(sqlConnStringBuilder.ConnectionString))
{
    db.Open();
    // Do database query stuff

    return result;
}

Mais c'est l'erreur que je rencontre lorsque j'essaie d'ouvrir la connexion à la base de données:

Une exception de type 'System.Data.SqlClient.SqlException' s'est produite dans System.Data.dll mais n'a pas été traitée dans le code utilisateur

Informations supplémentaires: Une erreur réseau ou spécifique à une instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou inaccessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (fournisseur: fournisseur de canaux nommés, erreur: 40 - Impossible d'ouvrir une connexion à SQL Server)

Voici comment j'ai déclaré la chaîne de connexion dans Web.config:

<connectionStrings>
    <add name="AppHarborMySql" connectionString="server=MYDOMAIN.mysql.sequelizer.com;database=MYDBNAME;uid=MYUSERNAME;pwd=MYPASSWORD" providerName="System.Data.SqlClient" />
</connectionStrings>

Est-ce que je manque quelque chose d'évident? J'utilise ASP.NET MVC 5.x et la dernière version de Dapper ... merci d'avance!

Réponse acceptée

Et bien sûr, bien qu’elle ait passé une bonne partie de l’heure à enquêter, je découvre la réponse immédiatement après avoir posé la question.

Pour tous ceux qui rencontrent le même problème: j'ai ajouté le package MySql.Web NuGet à mon projet MVC, en using MySql.Data.MySqlClient; en haut de ma page, puis modifié mon code pour qu'il pointe de SqlConnection vers MySqlConnection . Voici à quoi ressemble mon bloc de code de travail:

using (var db = new MySqlConnection(ConfigurationManager.ConnectionStrings["AppHarborMySql"].ConnectionString))
{
    db.Open();
    // Do database query stuff

    return result;
}


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi