La Spécification De Port Avec SqlConnectionStringBuilder?

J'ai couru un hic. J'ai besoin de spécifier le numéro de port pour mon local d'installation de SQL Server 2008 R2. Jusqu'à présent, j'ai essayé d'utiliser le SqlConnectionStringBuilder avec la source de données définie comme .\TESTSERVER, 1433, qui, par l'ensemble de la documentation doit me connecter au serveur TESTSERVER sur le port 1433 (valeur par défaut).

La chaîne de connexion ressemble à:

{Data Source=".\TESTSERVER, 1433";Initial Catalog=AdventureWorks;User ID=testuser;Password=MYPASSWORDHERE}

Mais j'ai une erreur qui ressemble à:

Un lié au réseau ou spécifique à l'instance erreur s'est produite lors de l'établissement d'une connexion à SQL server. Le serveur n'a pas été trouvé ou n'est pas accessible. Vérifiez que le nom de l'instance est correct et que SQL server est configuré pour autoriser les connexions à distance. (Fournisseur: fournisseur TCP, erreur:0 - aucune connexion n'a pu être établie car l'ordinateur cible l'a expressément refusé.

Lors de la vérification de la chaîne de connexion à l'aide de SqlConnectionStringBuilder.ToString() il sort presque comment MSDN suggère. Pour une raison quelconque, il encapsule des guillemets UNIQUEMENT autour de la source de données et rien d'autre. Cependant ce n'est peut-être le débogueur retrait de la dehors des guillemets car il est stocké dans un string type de données. J'ai aussi vérifié que SQL server est accessible sans spécifier le port et il est. Enfin, j'ai vérifié que le serveur est autorisé à accepter les connexions à distance. Compte tenu de cette instance de SQL Server est installé localement, en utilisant le port par défaut, et sur mon ordinateur de développement, je ne pouvais pas imaginer pourquoi j'ai une erreur de ce genre.

Est-ce parce que la SqlConnectionStringBuilder est primordial à mon port avec port? Dois-je pour quelque raison ouvrir des ports sur mon pare-feu? En sachant qu'il est entièrement d'installation locale, il ne devrait pas rencontrer de problèmes de pare-feu. Je préfère ne pas avoir à créer manuellement la chaîne de connexion. Non pas que c'est difficile, ça ajoute une couche de complexité à mon code, je préfère ne pas avoir sauf si nécessaire.

Toute aide serait appréciée. Merci!

EDIT:

Après une longue et difficile de creuser par le biais de la SqlConnectionStringBuilder syntaxe, il semble qu'il gère les paramètres non valides en passant ensuite à la chaîne de connexion entouré par des guillemets. J'imagine que c'est parce qu'il rompt le connectionstring. Ma question demeure: est-il un moyen de passer le port via SqlConnectionStringBuilder ou vais-je devoir construire moi-même?

Prendre le devis de la source de données de la chaîne. Aussi le `.` préfixe.
Il échoue également avec n'importe quelle combinaison de 127.0.0.1, 1433, localhost, 1433, etc. Le truc, c'est de la pensée, je suis en utilisant SqlConnectionStringBuilder qui est de l'ajout de la cite SEULEMENT quand j'ai le dbname,port de la syntaxe de set sur le champ source de données. Si j'ai été la construction de la chaîne de connexion manuellement, il ne serait pas un problème.

OriginalL'auteur David W | 2012-07-02