2011-01-18 5 views
4

Chaque membre de notre équipe de développement possède une copie de la base de données de notre application exécutée sur une version locale de SQL Server 2008 Enterprise avec SP1. Tout le monde peut accéder à la base de données en spécifiant son nom de serveur et d'instance dans son fichier web.config, mais pour partager au mieux la version développeur de notre fichier web.config, nous avons normalisé la création de chaînes génériques à l'aide de la sécurité intégrée. propriété à (local). Cette stratégie fonctionne correctement pour la majorité de nos machines Windows 7 64 bits, mais dans quelques cas (local) n'est pas reconnu. Nous avons comparé les paramètres via le gestionnaire de configuration de SQL Server (à savoir s'assurer que le protocole des canaux nommés était activé) et nous avons essayé de définir l'alias "(local)" via l'utilitaire SQL Server Client Network Utility. Que faut-il faire pour utiliser (local) dans nos chaînes de connexions?Configurer une instance SQL Server en tant que (local)

+0

Ces ordinateurs ont-ils plusieurs moteurs SQL Server en exécution (par exemple, une édition Express et une version entreprise)? Dans ce cas, vous devez également spécifier un nom d'occurrence. – Oded

+0

Je pensais '' (local) 'toujours utilisé la mémoire partagée. –

+0

@Martin - Que voulez-vous dire? – Oded

Répondre

10

Vous essayez de modifier le nom de tuyau pour votre instance à "\. \ Pipe \ sql \ query".

Vous pouvez trouver ce paramètre en démarrant le Gestionnaire de configuration SQL Server et en accédant à Configuration réseau SQL Server> Protocoles pour (nom de l'instance) et en cliquant avec le bouton droit sur Tubes nommés et en sélectionnant Propriétés. Si Named Pipes n'est pas activé, veillez à l'activer avant de redémarrer le service SQL Server (voir le commentaire de @NoahHeldman). Lors de la connexion à l'instance par défaut (sans nom d'instance), SQL Server utilise le port par défaut 1433 et le nom de canal par défaut "\. \ Pipe \ sql \ query". Le changer pour correspondre devrait (espérons-le) le réparer.

+0

Oui. C'est ce qu'il a fait. Merci pour l'aide, Geoff. Vous êtes déjà un ajout bienvenu à SO dans mon livre. –

+0

J'ai eu le même problème sur une machine et cela a fonctionné pour moi aussi. Merci! –

+3

J'ai essayé ces mêmes étapes, et a fini par obtenir un tas d'erreurs en essayant de démarrer le service SQL Server, y compris "Le fournisseur de pipe nommé serveur n'a pas écouté sur [\\. \ Pipe \ sql \ query]. . Cela est arrivé parce que Named Pipes était désactivé lorsque j'ai essayé de démarrer le service. Pour corriger, replacez simplement l'ancienne valeur dans le champ du nom de pipe (quelque chose comme \\. \ Pipe \ mssql $ \ sql \ query), démarrez et arrêtez le service, puis remplacez par \\. \ Pipe \ sql \ query et redémarrez le service. Au moins, cela a fonctionné pour moi ... –

2

Les machines sur lesquelles la connexion à la base de données (locale) ne fonctionne pas sont probablement ainsi car lors de l'installation de la base de données, le nom de l'instance était défini sur "instance par défaut". Vous pouvez modifier ces noms d'instance, ce qui peut résoudre ce problème: http://coderjournal.com/2008/02/how-to-change-instance-name-of-sql-server/.

Je pense que cela se produit lorsque SQL Server Express est déjà installé et en cours d'exécution, puis installez SQL Server Developer Edition/Standard/etc .... pas sûr à 100%, mais d'après ce que je me rappelle, cela peut être Cas.

+0

En fait, je ne fais que spéculer que cela peut fonctionner si –

+0

De bonnes suggestions. J'ai essayé de changer le nom de l'instance mais cela ne l'a pas fait. Je penche pour ton dernier commentaire pour le moment. Sur les ordinateurs fonctionnels, Express n'est pas installé ou nous pensons qu'il a été installé après la version complète de SQL. –

Questions connexes