Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

MSSQL-Fehler „Der zugrunde liegende Anbieter ist beim Öffnen fehlgeschlagen“

Ich hatte diesen Fehler und fand ein paar Lösungen:

Wenn Sie sich Ihre Verbindungszeichenfolge ansehen, sieht sie gültig aus. Ich habe diesen Blogbeitrag gefunden, das Problem hier ist, dass sie Integrated Security verwendet haben. Wenn Sie IIS verwenden, benötigt Ihr IIS-Benutzer Zugriff auf die Datenbank.

Wenn Sie Entity Framework mit Transaktionen verwenden, öffnet und schließt Entity Framework bei jedem Datenbankaufruf automatisch eine Verbindung. Wenn Sie also Transaktionen verwenden, versuchen Sie, eine Transaktion auf mehrere Verbindungen zu verteilen. Dies wird zu MSDTC erhoben.

(Weitere Informationen finden Sie in dieser Referenz.)

Das Ändern meines Codes in Folgendes hat das Problem behoben:

using (DatabaseEntities context = new DatabaseEntities())
{
    context.Connection.Open();
    // the rest
}