SQL Express chaîne de connexion de l'enfer ASP.Net
SQL Express 2005 est en cours d'exécution au niveau local. J'ai un projet écrit par une autre personne exécutant sur la même machine. Tout ce que je veux faire est de se connecter à elle, ne peut être que de droite dure?
C'est celui que j'utilise dans mes vieux classique code ASP pour frapper une autre base de données en cours d'exécution sur la même instance:
Provider=SQLOLEDB;Data Source=MONPORTABLE\MSSMLBIZ;Persist Security Info=True;User ID=TestUser;Mot de passe=letmein;Initial Catalog=TestDB
Mais en essayant une version qui fait de la .net code jeter un wobbler, comme il est écrit à l'aide de sql server pilotes si ce n'est pas aimer le Fournisseur de trucs.
Ici est à l'origine de la chaîne de connexion à partir de son code:
Serveur=(local);Initial Catalog=la base de données;Id Utilisateur=Utilisateur;Mot de passe=ThePassword;
J'ai été à http://www.connectionstrings.com/sql-server-2005 et essayé plusieurs options à partir de là, toutes ces get "SQL Server n'existe pas ou son accès est refusé" (quelle belle mixte message d'erreur!):
- Data Source=localhost;Integrated Security=True;Initial Catalog=la base de données
- Data Source=localhost\SQLEXPRESS;Integrated Security=True;Initial Catalog=la base de données
- Source de données=Monportable\SQLEXPRESS;Integrated Security=True;Initial Catalog=la base de données
- Serveur=Monportable\SQLEXPRESS;Initial Catalog=la base de données;Id Utilisateur=Utilisateur;Mot de passe=ThePassword;
J'ai créé des connexions pour Monportable/IUSR_MyLaptop, Monportable/ASPNET, Monportable/IWAM_MyLaptop dans SQL Express et donné toutes les autorisations de lecture/écriture de ma DB et réglez leur valeur par défaut DB à la base de données.
Ce que le diable ai-je fait de mal et comment puis-je déboguer le problème plus?
Mise à JOUR: Merci à Chris pour l'ensemble de ses pointeurs, arrivé là en fin de compte, si vous rencontrez le même problème, veuillez lire tous les commentaires, il y a beaucoup de liens et de conseils sur la façon de les traquer.
L'instance est en fait appelé MSSMLBIZ, mais à gauche il que SQLExpress pour plus de clarté. Essayé teh ci-dessus et obtenu ceci: Interfaces Réseau SQL: Erreur de Localisation du Serveur/de l'Instance Spécifiée [xFFFFFFFF]. Sqlcmd: Erreur: Microsoft SQL Native Client : Une erreur s'est produite lors de l'établissement d'une connexion au serveur. Lors de la connexion à SQL Server 2005, cet échec peut être provoqué par le fait que les paramètres par défaut de SQL Server n'autorise pas les connexions à distance.. Sqlcmd: Erreur: Microsoft SQL Native Client : délai de Connexion expiré. Vérifié dans la configuration du Serveur et tout ce qu'il allumé?
Va essayer de le réinstaller pour essayer de tout réinitialiser et recommencer...
Réinstaller était un cochon! Grâce à cet article pour l'aider au cas où quelqu'un d'autre obtient le "SQL Server n'a pas pu démarrer" erreur sur Win XP SP2: support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B920114
OriginalL'auteur Pete Duncanson | 2009-07-23
Vous devez vous connecter pour publier un commentaire.
Avec ce message d'erreur dans votre commentaire vous devez courir à travers les éléments de http://blogs.msdn.com/sql_protocols/archive/2007/05/13/sql-network-interfaces-error-26-error-locating-server-instance-specified.aspx
Je présume que l'instance est en cours d'exécution et de n'autoriser les connexions sur tcpip?
Pas - il ne devrait pas en cas de connexion en local, mais vous avez quelque chose d'étrange se passe, comment êtes-vous administrer le serveur à l'instant. SSMS? Êtes vous connectez à un ordinateur windows ou de connexion sql?
Dans le Gestionnaire de Configuration - vérifier la Config du Client pour voir ce que les protocoles sont activés pour le raccordement et la commande, ils sont appliqués.
Oui à l'aide de Microsoft SQL Server Management Studio Express avec une ouverture de session Windows. Va très bien. Aussi j'ai allumé Dynamique ports de nouveau par la valeur 0 et a changé le tcpip port 1433 je crois que c'est celui de droite (1434 est pour le Navigateur SQL à partir de ce que j'ai lu). Plus d'infos dans une minute...
Est que avec le commutateur-E (windows auth)? Vous pouvez maintenant essayer sqlcmd -S localhost\mssmlbiz -U utilisateur -P mot de passe pour vérifier que vous pouvez vous connecter en utilisant les informations d'identification que vous pensez qu'il devrait être en mesure d'utiliser.
OriginalL'auteur Chris W
Peut vous conseiller exactement ce qui est dans la config?
Êtes-vous en utilisant le bloc - dans ce cas, une chaîne de connexion valide serait:
ou
Ou êtes-vous à la chaîne de connexion à partir des paramètres de l'application - dans ce cas, je suppose que votre fournisseur est défini dans le code à l'intérieur de l'application elle-même?
Et merci pour votre aide trop Chris, très appréciée, DB le programme d'installation n'est pas vraiment mon sac...
OriginalL'auteur Chris W
Ne devrait pas votre source de données à lire: Data Source=localhost\sqlexpress trop?
OriginalL'auteur Tanner
Vous ne mentionnez pas l'octroi de droits pour les "Utilisateur" pour accéder à la base de données sur le serveur - si vous êtes restaurée à partir d'un autre serveur vous a eu un sid incompatibilité.
Essayez d'exécuter
sp_update_users_login 'report'
contre la db en question.
Si elle renvoie le compte d'utilisateur dans le rapport d'essayer:
sp_update_users_login 'update_one', 'theuser', 'theuser'
pour remapper les choses.
désolé, il devrait avoir été sp_change_users_login ... mais ce n'est probablement pas pertinent si vous ne pouvez même pas obtenir une connexion de base pour le serveur.
Ok obtenu que pour fonctionner, il y a une seule entrée, à partir du moment où le développeur a couru la DB, je suppose. Pas un des miens. J'ai fait restaurer la DB, mais ajouté à mes utilisateurs de retour dans la suite. Quel est ce rapport me dit Chris?
Qui vous indiquera les utilisateurs qui ne concordent pas - c'est à dire où le sid de l'utilisateur sur votre serveur ne correspond pas à celui dans la base de données elle-même. Un problème commun lors du déplacement de la dbs entre les serveurs. Si le contenu du rapport n'est pas le nom d'utilisateur que vous essayez de vous connecter avec juste l'ignorer.
OriginalL'auteur Chris W