我有一个很好的小Linq2SQL项目但是在部署时数据库在另一台服务器上。我一直收到远程服务器不存在的命名管道错误 - 但是它确实启用了命名管道(协议+表面)SQL 2005. TCP连接工作正常。
我已经尝试将连接字符串中的库设置为TCP,我尝试在服务器名称中强制使用TCP,但是Linq始终只使用命名管道而且无法正常工作。
如果可能的话,任何想法如何强制Linq2SQL仅使用TCP / IP?
感谢
答案 0 :(得分:2)
我的猜测是,您没有在DBML设计器文件上将连接字符串设置为None,而该文件正在为您创建类型化数据上下文。将连接字符串设置为None(确保选择设计器上没有任何内容),然后手动传入连接字符串,以确保您完全控制它。
如评论中所述,您无法将连接字符串设置为无。
在这种情况下,仍然存在类型为DataContext
的重载,它将连接字符串作为参数。我建议首先使用硬编码,看它是否有效。如果是,那么您知道它是配置文件中项目的分辨率。否则,您知道要查看连接字符串本身。
另外,如果配置文件中的分辨率有问题,我通常将其放在我的连接字符串部分 FIRST 中以清除machine.config文件中的条目:
<clear />
答案 1 :(得分:0)
如何更改SQLConfiguration管理器中的协议顺序或使用客户端上的命令工具 cliconfig 并在那里更改它。
答案 2 :(得分:0)
我见过这种情况发生在(其中任何一种):
@@server_name
不会返回与NETBIOS名称相同的内容。使用sp_dropserver和sp_addserver修复)有时在客户端计算机上重新安装MDAC会有所帮助,显然是因为驱动程序看起来像是在那里但是没有完全正常工作。
希望这会有所帮助......