Ich versuche eine App auf AppHarbor zu installieren. Es war in den meisten Fällen reibungslos, aber heute habe ich Probleme, mich mit meiner MySQL-Datenbank zu verbinden.
Mit den Zugangsdaten, die AppHarbor mir zur Verfügung gestellt hat, habe ich erfolgreich eine Verbindung zur mySQL-Datenbankinstanz mit dbForge Studio Express hergestellt, das erforderliche SQL-Schema erstellt und die Tabellen mit Daten gefüllt. Jetzt versuche ich, den folgenden C # -Code zu verwenden, um eine einfache Abfrage mit Dapper zu machen:
var sqlConnStringBuilder = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["AppHarborMySql"].ConnectionString);
using (var db = new SqlConnection(sqlConnStringBuilder.ConnectionString))
{
db.Open();
// Do database query stuff
return result;
}
Aber das ist der Fehler, auf den ich stoße, wenn ich versuche, die Datenbankverbindung zu öffnen:
Eine Ausnahme vom Typ "System.Data.SqlClient.SqlException" ist in System.Data.dll aufgetreten, wurde jedoch im Benutzercode nicht behandelt
Weitere Informationen: Beim Herstellen einer Verbindung mit SQL Server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder war nicht erreichbar. Stellen Sie sicher, dass der Instanzname korrekt ist und dass SQL Server so konfiguriert ist, dass Remoteverbindungen zugelassen werden. (Anbieter: Named Pipes Provider, Fehler: 40 - Verbindung zu SQL Server konnte nicht hergestellt werden)
So habe ich die Verbindungszeichenfolge in Web.config deklariert:
<connectionStrings>
<add name="AppHarborMySql" connectionString="server=MYDOMAIN.mysql.sequelizer.com;database=MYDBNAME;uid=MYUSERNAME;pwd=MYPASSWORD" providerName="System.Data.SqlClient" />
</connectionStrings>
Fehle ich etwas Offensichtliches? Ich benutze ASP.NET MVC 5.x und die neueste Version von Dapper ... Danke im Voraus!
Und natürlich, obwohl ich die meiste Zeit einer Untersuchung verbracht habe, entdecke ich die Antwort sofort, nachdem ich die Frage gestellt habe.
Für alle anderen, die das gleiche Problem haben könnten: Ich habe das MySql.Web NuGet-Paket zu meinem MVC-Projekt hinzugefügt, hinzugefügt using MySql.Data.MySqlClient;
an den Anfang meiner Seite und änderte dann meinen Code von SqlConnection
auf MySqlConnection
. So sieht mein Arbeitscode jetzt aus:
using (var db = new MySqlConnection(ConfigurationManager.ConnectionStrings["AppHarborMySql"].ConnectionString))
{
db.Open();
// Do database query stuff
return result;
}