Je travaille sur un projet utilisant SQL Server 2008 Express. J'ai eu une instance appelée SQLEXPRESS
et je vous connecter à la DB via cette chaîne de connexion:Impossible de se connecter à SQL Server 2016 Developer via une chaîne de connexion générée par le fichier .edmx
<add name="MyConn" connectionString="metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl;provider=System.Data.SqlClient;
provider connection string="data source=PCNAME\SQLEXPRESS;initial catalog=DbName;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
Cette chaîne de connexion a été générée par le fichier .edmx
(je travaille sur un projet ASP.NET MVC, première base de données, et Entity Framework) et cela a bien fonctionné.
J'ai récemment installé SQL Server 2016 avec une licence de développeur . Pendant le processus d'installation, j'ai utilisé l'instance par défaut, qui est MSSQLSERVER
. Pour information, l'ID d'instance généré est MSSQL13.MSSQLSERVER
.
J'ai un projet SQL dans ma solution pour régénérer mes tables sur mon nouveau SQL Server; Je pourrais me connecter facilement au serveur via l'assistant. J'ai également utilisé SQL Server Management Studio pour vérifier que tout allait bien sur le serveur, et cela fonctionne parfaitement (les tables sont générées, la connexion était OK).
Cependant, mon code ne parvient pas à se connecter au serveur et systématiquement échoué au premier appel avec error 26 - can't locate server instance
Voici ce que j'ai essayé jusqu'à présent:
- Modifier le paramètre
data source
du chaîne de connexion àlocalhost
,.
,.\MSSQLSERVER
,.\PCNAME
,PCNAME.MSSQLSERVER
,PCNAME.MSSQL13.MSSQLSERVER
,DOMAIN.MSSQLSERVER
,DOMAIN\PCNAME
=> ne fonctionne pas - Verify service SQL sont en cours d'exécution => Ils sont
- Créer un fichier
.udp
, se connecter à mon serveur et copier/coller la chaîne de connexion générée:Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MyDB;Data Source=PCNAME
=> ne fonctionne pas - Régénérer mon dossier .edmx (et connexion stirng) => ne fonctionne pas
- Vérifiez this suggestion => Il était déjà correct
Pourquoi est-ce tous les assistants de connexion semble fonctionner (SSMS, fichier .udl
, générateur .edmx
, mon projet DB), alors que mon code est incapable d'atteindre serveur? Je n'ai changé aucune ligne de code.
EDIT: Ce qui est fou est que j'ai une base de données de journal sur le même serveur, la chaîne de connexion est
<add name="NLogConn" connectionString="Data Source=localhost;initial catalog=DBLOG;integrated security=True" providerName="System.Data.SqlClient" />
Et il est en fait l'erreur logging réseau !! Est-ce vraiment une erreur de chaîne de connexion ou une erreur EF? J'utilise la dernière version EF, 6.1.3 sur chaque projet référençant EF (les couches principale et DAL)
1 - J'utilise EF 6.1.3, la dernière version. 2 - Corrigez-moi si je me trompe, mais si j'utilise EF, je suppose que je dois utiliser System.Data.EntityClient en tant que fournisseur? 3 - Chaque projet référençant EF a son propre fichier de configuration (seul mon projet principal et le DAL) et j'ai vérifié partout où la chaîne de connexion était la même. En outre, j'ai apporté une modification à mon message original – user2687153
La chaîne de connexion que vous avez indiquée dans votre exemple n'est pas une chaîne de connexion EF. Vous avez besoin de toutes les métadonnées: 'metadata = res: //*/Tester.csdl..etc' pour montrer que cette chaîne de connexion fait référence aux fichiers générés par EF. – djangojazz
J'ai copié/collé tout le 'metadata = res: //' dans le premier que j'ai donné 'MyConn' (qui ne semble pas fonctionner). L'autre, en effet, n'est pas généré par EF et n'a pas besoin de ces métadonnées. – user2687153