1

我刚刚安装了 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

现在有一些有趣的笔记:

  1. 我什至可以从局域网连接 ssms
  2. 当我通过 LAN 从 ssms 连接时,我总是首先在 ssms 中获得超时,并且只有在第二次尝试时它才会立即连接。
  3. 只有当我通过代码查询时才会引发异常。同样的例外是通过 sqlconnection 或 EF
  4. Visual Studio 本身与数据库的连接没有问题,因为它显示了 EF 向导并显示了可用的表、创建类等......
  5. 我可以在 LAN 上的 ssms 瞬间执行的查询,我很快就得到了 4 行(仅此而已)

问题可能是什么?

我试过:

  1. 在配置管理器中启用我可以使用的任何客户端协议
  2. 重新启动我认为相关的任何服务(代理、浏览器......)
  3. 重新启动整个服务器电脑
  4. 更改密码
  5. 查看 SQL Server 日志(似乎没有显示任何尝试的连接,尽管我可能看错了地方)
  6. 查看 Windows 防火墙日志 (C:\Windows\System32\LogFiles\Firewall\pfirewall.log) 它是空的
  7. 在客户端计算机上安装 SQL Server 2012
  8. 将连接字符串中的端口设置为 1433(我将两个版本都设置为 1433,可以吗?)。但后来我得到另一个错误

    建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。

还有什么可以做的?

4

2 回答 2

3

我发现这个链接看起来很像你的问题。单击此处 您可能想尝试打开防火墙上的端口,以防防火墙未记录丢弃的连接。

于 2012-06-04T21:21:26.027 回答
2

由于您在 SQL Server 2008 R2 旁边安装了 SQL Server 2012,因此我会尝试在不使用默认端口的情况下进行连接。

要查找 SQL Server 2012 正在使用的端口,请转到“客户端 11 协议”部分中的 SQL“SQL Server 配置管理器。查看 TCP/IP 协议上的端口属性。

在您的代码中,在实例名称之后添加一个逗号而不是端口号。

data source=PCBOX\MSSERVER,1434;

这可能是港口以外的东西。

于 2012-06-01T18:13:10.943 回答