2009-03-25 8 views
1

J'ai un bon petit projet Linq2SQL mais quand déployé la base de données est sur un autre serveur. Je continue d'obtenir une erreur de canal nommé que le serveur distant n'existe pas - et pourtant il a, il a activé les canaux nommés (protocole + surface) SQL 2005. Les connexions TCP fonctionnent bien.Arrêter Linq2SQL en utilisant des tuyaux nommés?

J'ai essayé de définir la bibliothèque dans la chaîne de connexion à un TCP, j'ai essayé de forcer TCP dans le nom du serveur mais Linq est toujours et seulement en utilisant des canaux nommés et ne fonctionnera tout simplement pas.

Une idée pour forcer Linq2SQL à utiliser uniquement TCP/IP, si possible?

grâce

+0

Etes-vous sûr qu'il utilise en fait la chaîne de connexion que vous donnez, plutôt que de défaut quelque part ailleurs? Si vous changez quelque chose de stupide avec du texte facilement reconnaissable, ce texte finit-il dans l'exception? –

+0

Je ne peux pas dire - j'ai ajouté quelques informations de débogage pour aller chercher la chaîne de connexion et l'afficher et c'était correct mais l'objet de contexte de données pourrait faire quelque chose de génial. – typemismatch

Répondre

1

Je suppose que vous ne définissez pas la chaîne de connexion à aucun sur le fichier de concepteur DBML qui crée le contexte de données typées pour vous. Définissez la chaîne de connexion sur Aucun (assurez-vous que rien n'est sélectionné sur le concepteur), puis transmettez la chaîne de connexion manuellement pour vous assurer que vous disposez d'un contrôle total sur celle-ci.

Comme indiqué dans les commentaires, vous ne pouvez pas définir la chaîne de connexion à aucun.

Dans ce cas, il existe toujours une surcharge du type DataContext qui prend une chaîne de connexion en paramètre. Je recommanderais d'abord d'utiliser un codage en dur pour voir si cela fonctionne. Si c'est le cas, alors vous savez que c'est la résolution de l'élément du fichier de configuration. Sinon, vous savez regarder la chaîne de connexion elle-même.

En outre, si elle est un problème avec la résolution dans le fichier de configuration, je place habituellement dans ma section de chaîne de connexion FIRST pour effacer les entrées du fichier machine.config:

<clear /> 
+0

Vous avez raison, nous ne le mettrons pas à zéro - nous en avons besoin ici et c'est juste une chaîne de connexion du fichier app.config. – typemismatch

0

Que diriez-vous de changer l'ordre du protocole dans le gestionnaire SQLConfiguration ou en utilisant l'outil de commande, cliconfig sur le client et en le modifiant ici.

0

Je l'ai vu se produire lorsque (l'un de ces):

  • La version client SQL est pas celui que vous attendez
  • l'authentification Windows est utilisé, souvent sans le vouloir
  • La connexion les informations que vous fournissez ne correspondent pas au nom du serveur. (C'est, sélectionnez @@server_name ne renvoie pas le même que le nom NETBIOS. Fix en utilisant sp_dropserver et sp_addserver)

réinstallant Parfois MDAC sur la machine cliente aide, apparemment parce que le conducteur semblait qu'il était là, mais n » était pas t pleinement fonctionnant.

Hope this helps ...

Questions connexes