10
votes

Spécifier le port avec SQLConnectionsRingBuilder?

J'ai couru dans un accroc. J'ai besoin de spécifier le numéro de port de mon installation locale de SQL Server 2008 R2. Jusqu'à présent, j'ai essayé d'utiliser le SQLConnectionsRingBuilder avec le jeu de sources de données comme . \ TestServer, 1433 , lequel de toutes les documents doit me connecter au serveur testServer sur le port 1433 (la valeur par défaut).

La chaîne de connexion ressemble à:

{source de données = ". \ testserver, 1433"; catalogue initial = aventureworks; ID utilisateur = testeur; mot de passe = MyPasswordeur ere}

Cependant, je reçois une erreur qui ressemble à:

Une erreur liée au réseau ou à une erreur d'instance s'est produite lors de l'établissement d'une connexion SQL Server. Le serveur est introuvable ou inaccessible. Vérifiez que le nom d'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 faite car la machine cible a activement refusé.

Lors de la vérification de la chaîne de connexion en utilisant sqlconnectionstringbuilder.tostring () Il sort presque comment MSDN suggère. Pour une raison quelconque, il enveloppe des citations doubles uniquement autour de la source de données et rien d'autre. Cependant, cela peut simplement être le débogueur enlever les citations extérieures car elle est stockée dans une chaîne DataType. J'ai également vérifié que SQL Server est accessible sans spécifier le port et c'est. Enfin, j'ai vérifié que le serveur est autorisé à accepter des connexions à distance. Considérant que cette instance de SQL Server est installée localement, à l'aide du port par défaut et sur mon ordinateur de développement, je n'ai pas pu imaginer pourquoi je recevrais une erreur comme celle-ci.

Est-ce parce que le SQLConnectionsRingBuilder remplace mon port avec son propre port? Dois-je pour une raison quelconque, ouvrez-vous des ports sur mon pare-feu? Connaissant que c'est une installation entièrement locale, il ne faut pas rencontrer de problèmes de pare-feu. Je préférerais ne pas avoir à construire manuellement la chaîne de connexion. Pas que c'est difficile, cela ajoute simplement une couche de complexité à mon code, je préfère ne pas avoir si nécessaire.

Toute aide serait appréciée. Merci!

EDIT:

Après une longue creusee à travers la syntaxe SQLConnectionstringBuilder, il apparaît qu'il gère des paramètres non valides en passant à la chaîne de connexion entourée de guillemets. J'imagine que c'est parce qu'il enfreint les connexions. Ma question reste toujours: Y a-t-il un moyen de passer du port via SQLConnectionsRingBuilder ou devrai-je construire moi-même?


2 commentaires

Prenez les citations de la chaîne de source de données. Aussi le préfixe `.`.


Il échoue également avec n'importe quelle combinaison de 127.0.0.1, 1433 , localhost, 1433 , etc. La chose est pensée que j'utilise sqlconnectionstringbuilder qui ajoute les citations uniquement lorsque j'ai le dbname, Syntaxe de port défini sur le champ Source de données. Si je construisais la corde de connexion manuellement, ce ne serait pas un problème.


4 Réponses :


0
votes

Jetez un coup d'œil à la http://www.connectionstrings.com/sql-server- 2008

La chaîne de connexion SQL Server 2008 ne contient pas de citations supplémentaires autour du nom Indance Server. Votre chaîne de connexion doit être xxx


1 commentaires

Encore une fois, j'utilise le SqlServerconnectionstringBuilder. Je ne construis pas personnellement cela. Je suis en train de renseigner sur la raison pour laquelle cela se passe lorsque j'utilise la solution de Microsoft pour un bâtiment de chaîne de connexion fiable.




8
votes

TL; DR

Retirez l'espace avant le numéro de port dans votre chaîne de source de données: p> xxx pré>

et laissez-le ressembler à ce p>

// The first try by using TCP port 1433
WindowsFormsApplication.vshost.exe  5480    TCP Reconnect   MyMachine:53202 -> SqlServerInstance:1433   SUCCESS
WindowsFormsApplication.vshost.exe  5480    TCP Reconnect   MyMachine:53202 -> SqlServerInstance:1433   SUCCESS
// The second try by using UDP port 1434
WindowsFormsApplication.vshost.exe  7664    UDP Send    MyMachine:50245 -> SqlServerInstance:1434   SUCCESS
WindowsFormsApplication.vshost.exe  7664    UDP Receive MyMachine:50245 -> SqlServerInstance:1434   SUCCESS
// Taking informations out of UDP connection to connect to dynamic assigned port
WindowsFormsApplication.vshost.exe  7664    TCP Connect MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
WindowsFormsApplication.vshost.exe  7664    TCP Send    MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
WindowsFormsApplication.vshost.exe  7664    TCP Receive MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
WindowsFormsApplication.vshost.exe  7664    TCP Send    MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
WindowsFormsApplication.vshost.exe  7664    TCP Receive MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
WindowsFormsApplication.vshost.exe  7664    TCP Send    MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
WindowsFormsApplication.vshost.exe  7664    TCP Receive MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
WindowsFormsApplication.vshost.exe  7664    TCP Send    MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
WindowsFormsApplication.vshost.exe  7664    TCP Receive MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
WindowsFormsApplication.vshost.exe  7664    TCP Send    MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
WindowsFormsApplication.vshost.exe  7664    TCP Receive MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
WindowsFormsApplication.vshost.exe  7664    TCP Receive MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
WindowsFormsApplication.vshost.exe  7664    TCP Receive MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
WindowsFormsApplication.vshost.exe  7664    TCP Receive MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
WindowsFormsApplication.vshost.exe  7664    TCP Receive MyMachine:53209 -> SqlServerInstance:58904  SUCCESS
// Closing of dynamic assigned port
WindowsFormsApplication.vshost.exe  7664    TCP Disconnect  MyMachine:53209 -> SqlServerInstance:58904  SUCCESS


3 commentaires

+1 C'est la bonne réponse, mais je souhaite vraiment que vous modifiez votre réponse à une seule phrase suivie d'une seule ligne de code à titre d'exemple.


@Leegrissom: espère que cela en fait un peu plus clair.


En fait, c'est mieux que ma suggestion. :)



0
votes

Pour moi, son travail comme ceci: xxx


0 commentaires