J'ai installé SQL Server Express 2008 sur l'un de mes ordinateurs et j'essaie d'établir une connexion à distance ... lorsque j'utilise MS SQL Server Management Studio, je peux me connecter à base de données sans aucun problème du tout (avec les mêmes informations d'identification), mais lorsque je tente de créer une chaîne de connexion dans mon application C# je reçois une exception:C# 2008 Chaîne de connexion SQL Server Express
a lié à un réseau ou une instance spécifique erreur est survenue lors de l'établissement une connexion à SQL Server. Le serveur n'a pas été trouvé ou n'était pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes.
Voici ce que ma chaîne de connexion ressemble à (l'information privée est modifiée):
"Data Source="MACHINENAME\\SQLEXPRESS";User ID="Admin";Password="the_password";Initial Catalog="MyDatabase";Integrated Security=True;Connect Timeout=120");
Comme je l'ai dit, je peux vous connecter en utilisant le Management Studio avec les mêmes paramètres: même utilisateur , mot de passe et nom de source de données, mais il échoue lorsque j'essaie d'ouvrir une connexion avec la chaîne de connexion ci-dessus.
Note:
J'ai permis à la connectivité à distance sur le serveur, le pare-feu désactivé, la connexion TCP/IP est activé sur le serveur, le navigateur activé SQL.
La chaîne de connexion fonctionne correctement lorsque je suis sur la même machine. J'ai recherché l'option de sécurité intégrée et je l'ai mise à false juste pour m'assurer qu'elle n'essaie pas d'utiliser la connexion Windows, mais elle échoue toujours.
La base de données est configurée pour autoriser à la fois la connexion à Windows et la connexion à la base de données.
En changeant l'option de sécurité intégrée à SSPI, True, et enfin False, tous les 3 m'ont donné la même erreur que ci-dessus.
Quelqu'un peut-il me dire si je fais quelque chose de mal?
UPDATE, voici mon code exact (cette fois que le mot de passe est supprimé, et je l'ai ajouté une photo de studio de gestion en cours d'exécution sur la même machine):
string _connectionString =
//string.Format("Server=%s;User ID=%s;Password=%s;Database=%s;Connect Timeout=120", // Same problem
//string.Format("Server=%s;User ID=%s;Password=%s;Database=%s;Integrated Security=False;Connect Timeout=120", // Same problem
string.Format("Data Source=%s;User ID=%s;Password=%s;Initial Catalog=%s;Integrated Security=False;Connect Timeout=120", // Same problem
"GANTCHEVI\\SQLEXPRESS",
"FinchAdmin",
"the_password",
"Finch");
http://s113.photobucket.com/albums/n202/ozpowermo/?action=view¤t=ManagementStudio.jpg
I figured it out:
Lorsque vous utilisez e e "Data Source =" étiquette, il faut utiliser le "User ID", si vous utilisez l'ID utilisateur, il ne semble pas que cela fonctionne!
string _connectionString = "Data Source=GANTCHEVI\\SQLEXPRESS;Initial Catalog=Finch;Integrated Security=False;User Id=FinchAdmin;Password=the_password;Connect Timeout=0";"
+1 Explication de Nice. – Praveen