web-dev-qa-db-fra.com

update-database: "Une erreur liée au réseau ou à une instance s'est produite lors de l'établissement de la connexion à SQL Server"

J'ai un simple projet C #. Voici ma chaîne de connexion dans mon web.config pour la base de données:

<connectionStrings>
   <add name="DefaultConnection" 
        connectionString="Data Source=172.17.0.47;Initial Catalog=DevSystemListe;User ID=web_access;Password=123456" 
        providerName="System.Data.SqlClient" />
</connectionStrings>

Je me suis déjà assuré que cette connexion fonctionne. Je peux me connecter à ma base de données à partir de Visual Studio avec cette connexion et je peux également voir les tables et les données.

Lorsque je souhaite mettre à jour ma base de données avec update-database, cette erreur se produit: 

Une erreur liée au réseau ou à une instance spécifique 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 à distance. (fournisseur: Interfaces réseau SQL, erreur: 26 - Erreur lors de la localisation du serveur/instance spécifiée)

J'ai désinstallé Entity Framework puis l'ai réinstallé. Rien n'a changé.

17
Anaa

J'ai finalement découvert. J'ai un projet de site Web et mon API dans ma solution. Le problème était que le site Web avait été défini comme projet de démarrage. La structure de cette entité a donc recherché la chaîne de connexion dans le web.config du site Web et non dans le web.config de l'API. Changer le projet de démarrage en mon API a résolu le problème. 

Si vous voulez avoir le projet de site Web comme projet de démarrage. Copiez simplement la chaîne de connexion dans les Websides web.config.

Néanmoins, merci pour tout le monde aide.

48
Anaa

Si l'application est exécutée sous IIS complet, une configuration pour IIS est nécessaire pour garantir que l'instance localDB peut être utilisée dans l'application. Voir https://blogs.msdn.Microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-1-user-profile/

0
P Walker

Vous dites que vous pouvez utiliser cette chaîne de connexion pour voir data & tables ... pouvez-vous également utiliser cette connexion pour insérer nouveaux enregistrements?

Pour chaque utilisateur, SQL Server vous permet de définir s'il dispose d'un accès en lecture et/ou en écriture. Peut-être que votre utilisateur manque juste la permission db_datawriter ...?

enter image description here

0
Mike Gledhill