Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Erreur MSSQL "Le fournisseur sous-jacent a échoué à l'ouverture"

J'ai eu cette erreur et j'ai trouvé quelques solutions :

En regardant votre chaîne de connexion, elle semble valide. J'ai trouvé ce billet de blog, le problème ici est qu'ils utilisaient la sécurité intégrée. Si vous utilisez IIS, votre utilisateur IIS a besoin d'accéder à la base de données.

Si vous utilisez Entity Framework avec Transactions, Entity Framework ouvre et ferme automatiquement une connexion à chaque appel de base de données. Ainsi, lorsque vous utilisez des transactions, vous essayez de répartir une transaction sur plusieurs connexions. Cela élève à MSDTC.

(Voir cette référence pour plus d'informations.)

Changer mon code pour ce qui suit l'a corrigé :

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