【发布时间】:2012-06-06 10:50:34
【问题描述】:
我刚刚安装了 SQL Server 2012 和 SQL Server 2008 R2
本地连接没问题
但是当我尝试通过局域网上的另一台电脑连接时,我得到了超时:
超时。在完成之前超时时间已过 操作或服务器没有响应。
这是代码
Dim queryString = "SELECT * FROM cities"
Using connection As New SqlConnection("data source=PCBOX\MSSERVER;initial catalog=MYDB;persist security info=True;user id=ABC;password=123;Connection Timeout=30")
Dim command As New SqlCommand(queryString, connection)
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
While reader.Read()
Console.WriteLine(String.Format("{0}, {1}", reader(0), reader(1)))
End While
End Using
Dim a = New MYDBEntities
Dim b = a.Cities.ToList
现在有一些有趣的笔记:
- 我什至可以从局域网连接到 ssms
- 当我通过 LAN 从 ssms 连接时,我总是首先在 ssms 中获得超时,并且只有在第二次尝试时才会立即连接。
- 只有在我通过代码查询时才会抛出异常。同样的例外是通过 sqlconnection 或 EF
- visual studio 本身与数据库的连接没有问题,因为它显示 EF 向导并显示可用表、创建类等...
- 我可以在 LAN 上的 ssms 瞬间执行的查询,我很快就返回了 4 行(仅此而已)
可能是什么问题?
我试过了:
- 我可以在配置管理器中启用任何客户端协议
- 重新启动我认为相关的任何服务(代理、浏览器...)
- 重启整个服务器电脑
- 更改密码
- 查看 SQL Server 日志(似乎没有显示任何尝试的连接,尽管我可能看错了地方)
- 查看 Windows 防火墙日志 (C:\Windows\System32\LogFiles\Firewall\pfirewall.log) 是空的
- 在客户端计算机上安装 SQL Server 2012
- 将连接字符串中的端口设置为 1433(我将两个版本都设置为 1433,可以吗?)。但后来我得到另一个错误
与 SQL Server 建立连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。
【问题讨论】:
-
也许可以尝试选择 getdate() 看看是否与该表有关。
-
同样的错误。
connection.open行上的代码也会崩溃。所以我不认为它与 sql 语句本身有任何联系。 -
你有两个 SQL server 在同一个端口上监听?????
-
是的。我明白那是个问题?我只是将 tcp 端口(在客户端协议属性中)更改为 1434(而不是 1433)我仍然在.net 中得到相同的
network-related or instance-specific...err。在 ssms 中,它仍然很受欢迎。有时我可以连接有时不能。 -
完全关闭其他 SQL 并将所有内容设置为 1433。从数据库中删除用户 ID。删除并重新创建用户 ID。将用户 ID 添加到数据库。重新启动客户端和服务器。
标签: .net sql-server timeout