4

SQL Express 2005 s'exécute localement. J'ai un projet écrit par une autre personne fonctionnant sur la même machine. Tout ce que je veux faire, c'est me connecter, ça ne peut pas être si difficile?Chaîne de connexion SQL Express enfoncée ASP.Net

C'est celui que j'utilise dans mon ancien code ASP classique 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; ID utilisateur = TestUser; Password = letmein; Initial Catalog = TestDB

Mais essayer une version de ce code fait que le code .net lance un wobbler comme il l'a écrit en utilisant les pilotes SQLServer, donc il n'aime pas le contenu du fournisseur.

Voici la chaîne de connexion orginal de son code:

serveur = (local); Initial Catalog = TheDatabase; Utilisateur Id = lutilisation; Mot de passe = thepassword;

Je suis allé à http://www.connectionstrings.com/sql-server-2005 et essayé plusieurs des options à partir de là, ces tout obtenir « SQL Server n'existe pas ou accès refusé » (quel message d'erreur belle mixte qui est!):

  • Data Source = localhost; Integrated Security = True; initial Catalog = TheDatabase
  • Source de données = localhost \ SQLEXPRESS; Integrated Security = True; initial Catalog = TheDatabase
  • Source de données = MonPortable \ SQLEXPRESS; Integrated Security = True; initial Catalog = TheDatabase
  • Se rver = MyLaptop \ SQLEXPRESS; catalogue initial = TheDatabase; User Id = TheUser; Password = ThePassword;

J'ai créé pour les connexions MonPortable/IUSR_MyLaptop, MonPortable/ASPNET, MonPortable/IWAM_MyLaptop dans SQL Express et les donne tous lecture/écriture des autorisations à mon DB et à établir leur base par défaut pour être TheDatabase.

Que diable est-ce que je fais mal et comment puis-je déboguer le problème un peu plus? MISE À JOUR: spécial Merci à Chris pour tous ses pointeurs, y compris à la fin, si vous rencontrez le même problème s'il vous plaît lire tous les commentaires il ya beaucoup de liens et de conseils sur la façon de les traquer.

+0

Peut-être une question daft mais quel est le nom de l'instance réelle du serveur sql express à laquelle vous essayez de vous connecter? Est-ce localhost \ sqlexpress ou autre chose? Supprimez l'application de l'équation et essayez de vous connecter à sql via sqlcmd en faisant 'sqlcmd -S nom_serveur \ nom_instance -E' dans une invite de commande et vérifiez si elle se connecte. –

+0

L'instance s'appelle en fait MSSMLBIZ mais l'a laissée comme SQLExpress pour plus de clarté. J'ai essayé ci-dessus et j'ai obtenu ceci: Interfaces réseau SQL: Erreur de localisation du serveur/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 dû au fait que, sous les paramètres par défaut, SQL Server n'autorise pas les connexions distantes. Sqlcmd: Erreur: Microsoft SQL Native Client: le délai de connexion a expiré. Vérifié dans la configuration du serveur et tout ce qu'il allumé? –

+0

Si vous essayez d'effectuer une réinstallation pour essayer de tout réinitialiser et recommencer ... –

Répondre

1

Avec ce message d'erreur dans votre commentaire, vous devez parcourir les articles dans 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 ne permet plus de connexions TCPIP?

+0

Lire cet article maintenant, en téléchargeant le PortQry aussi. Oui instance est en cours d'exécution et de ce que j'ai lu et vu "devrait" permettre tcpip. Ports dynamiques désactivés et paramétrez-le pour toujours utiliser 1434. Ai-je besoin de cela si vous exécutez local? –

+1

Non - cela ne devrait pas poser de problème si vous vous connectez localement mais vous avez quelque chose d'étrange qui se passe - comment administrez-vous le serveur en ce moment. SSMS? Êtes-vous connecté avec un login Windows ou SQL? –

+0

Dans Configuration Manager, vérifiez la configuration du client pour voir quels protocoles sont activés pour la connexion et l'ordre dans lequel ils sont appliqués. –

0

Votre source de données ne devrait-elle pas lire: Source de données = localhost \ sqlexpress aussi?

+0

J'ai essayé celui-là, l'a ajouté ci-dessus. –

0

Vous ne mentionnez pas de droits d'accès pour 'TheUser' pour accéder à la base de données sur le serveur - si vous êtes restauré à partir d'un autre serveur, vous pouvez avoir une discordance SID.

Essayez d'exécuter

sp_update_users_login 'report'

contre la db en question.

Si elle renvoie le compte d'utilisateur dans l'essai du rapport:

sp_update_users_login 'update_one', 'theuser', 'theuser'

remapper choses.

+0

Je ne semble pas avoir cette procédure stockée disponible? Msg 2812, niveau 16, état 62, ligne 1 Impossible de trouver la procédure stockée 'sp_update_users_login'. –

+0

désolé - il aurait dû être sp_change_users_login ... mais ce n'est probablement pas pertinent si vous ne pouvez même pas obtenir une connexion de base au serveur. –

+0

Ok, ça a marché, il n'y a qu'une seule entrée, une à partir du moment où le développeur a exécuté la DB je suppose. Pas un des miens. J'ai restauré la base de données mais j'ai ajouté mes utilisateurs par la suite. Qu'est-ce que ce rapport me dit Chris? –

1

Pouvez-vous nous dire exactement ce qui se trouve dans la configuration?

Utilisez-vous le bloc - auquel cas une chaîne de connexion valide serait:

<add name="connection" providerName="System.Data.SqlClient" connectionString="Data Source=localhost\MSSMLBIZ;Initial Catalog=TheDatabase;Integrated Security=True" /> 

ou

<add name="connection" providerName="System.Data.SqlClient" connectionString="Data Source=localhost\MSSMLBIZ;Initial Catalog=TheDatabase;Integrated Security=False;User Id=TheUser;Password=ThePassword;Application Name=AppName;" /> 

Ou êtes-vous obtenir la chaîne de connexion à partir de paramètres de l'application - dans ce cas, je devinez que votre fournisseur est défini dans le code à l'intérieur de l'application elle-même?

+0

paramètres de l'application, sa version .Net 1 (en raison d'une limitation de l'endroit où il sera hébergé). Réinstaller ne va pas bien non plus ... un de ces jours ... –

+0

Et merci pour votre aide aussi Chris, très apprécié, la configuration DB n'est pas vraiment mon sac ... –