解决Sql Server 2005连接问题

时间:2009-04-22 01:27:36

标签: sql-server-2005

我有一个使用SQL Server Express 2005数据库的.Net 3.5应用程序,该数据库允许通过TCP / IP进行连接。安装了SQL Server的计算机是域的一部分。该程序安装在3台计算机上并共享同一个数据库。连接字符串位于所有计算机之间共享的文件中。 SQL Server安装在Windows Server 2003计算机上。另外两台计算机是Windows XP。其中一台XP机器是域的一部分,与服务器位于同一位置。另一台XP计算机不属于域,并使用硬件VPN连接到服务器(始终打开)。作为域的一部分的Windows Server和XP机器上的程序能够打开与数据库的连接,但是在尝试打开连接时,通过VPN连接的XP机器会超时。服务器具有混合模式身份验证。我使用的身份验证是Sql server用户名和密码。

这是我用来试图找出问题的清单:
 1. SQL浏览器正在Windows Server计算机上运行。 [港口:1434]
 2. SQL Server正在接受TCP上的连接(但不是命名管道)  3.服务器从客户端响应Ping  4.检查sql server的ErrorLog并记下端口。我能够从客户端的命令行telnet到服务器IP和SQL端口。

如何找到连接超时的位置?是否有便携式程序(无安装),我可以在服务器上使用它来检查网络流量,看看请求是在中间接收还是丢弃?

谢谢,
基肖尔。甲

3 个答案:

答案 0 :(得分:2)

您可以使用SysInternals TCPView来监控流量。

答案 1 :(得分:2)

你知道你不是在说1433吗?我会上客户端机器并尝试通过端口1433和1434 telnet,看看你是否可以连接到服务器(显然你将无法登录,但你应该能够看到你是否可以连接)。至少它告诉你是否有某种类型的防火墙问题,或者你是否正在连接正确的端口。

-don

答案 2 :(得分:0)

我知道没有便携式网络嗅探器,因为您需要WinCAP才能将卡置于混杂模式。你可以做的是在XP机器上安装Wireshark来转储网络流量,并使用服务器上的管理工作室来监视连接。

您还可以在服务器上使用netstat查看开放端口,并了解VPN IP地址,这也将告知服务器上是否已打开套接字。

eg: netstat -p tcp -b

这将生成显示src / dest IP地址的输出和使用该套接字的应用程序

TCP 192.168.1.1:1146 192.168.1.1:80 ESTABLISHED
[FIREFOX.EXE]