【发布时间】:2011-07-03 21:18:58
【问题描述】:
我知道我们应该注意这些短语,但突然间我与localhost\sqlexpress 的所有联系都停止了工作。当.\sqlexpress 和(local)\sqlexpress 工作时,如果不是因为我正在处理一个所有连接字符串都以前一种格式定义的团队项目这一事实,这不会有什么大不了的。显然我很难接受它不应该再工作了,所以我花了几个小时分析和重新安装几个 SQL Server 版本,但无济于事。 (并且正在破坏 VS2010 中的数据库项目,所以我也需要重新安装......)。
但这里是细节。如前所述,我无法连接到localhost\sqlexpress,而是连接到.\sqlexpress。使用 SQL Server 管理器以及用于部署和运行 wcf 服务的连接字符串时出现相同的症状。有趣的是,将默认实例解析为 localhost 有效。
首先,是的,SQL Server 正在运行,只是为了确保我启用了 TCP/IP 并将端口设置为固定为 1433,尽管它可以在我同事禁用 TCP/IP 的机器上运行。 (在某处我读到localhost 可以在使用本机 SQL 客户端时使用共享内存来解决,所以我猜这就是他的系统上发生的事情。)
设置只有一个 SQL Server Express 2008 R2 实例和 Windows 7 Professional 上的 VS2010。
启动 Sql express 错误日志说:
Server is listening on [ 'any' <ipv6> 1433].
Server is listening on [ 'any' <ipv4> 1433].
Netstat 说(摘录):
TCP 0.0.0.0:1433 Machinenename:0 LISTENING
TCP [::]:1433 Machinenename:0 LISTENING
我注意到端口 1433 上没有 127.0.0.1:1433 和任何 UDP
为了诊断问题,我使用 sqlcmd 来找出使用的传输方式:
1.本地主机\sqlexpress
sqlcmd -Slocalhost\sqlexpress -> Shared memory
sqlcmd -Stcp:localhost\sqlexpress -> SQL Server Network Interfaces: Error Locating Server/Instance Specified
即使我将共享内存指定为协议,也无法从 SQL Server Management Studio 连接到 localhost\sqlexpress
2。本地主机
sqlcmd -Slocalhost -> TCP
sqlcmd -Stcp:localhost -> TCP
可以从 SQL Server Management Studio 连接到本地主机
3. (本地)\sqlexpress
sqlcmd -S(local)\sqlexpress -> Shared memory
sqlcmd -Stcp:(local)\sqlexpress -> SQL Server Network Interfaces: Error Locating Server/Instance Specified
可以从 SQL Server Management Studio 连接到(本地)\sqlexpress
所以我在这里迷路了。非常感谢任何帮助。
【问题讨论】:
标签: sql sql-server sql-server-2008 connection-string localhost