SQL Server 2000连接错误 - 登录前握手?

时间:2012-09-06 21:02:32

标签: c# sql-server visual-studio-2010 visual-studio sql-server-2000

我正在VS 2010中使用SQL Server 2000后端开发一个ASP.NET应用程序(我知道,我知道......)

在过去3个月的大部分时间里,我一直在使用此设置。但是,昨天我确实应用了VS 2010 SP1,现在连接到此数据库会导致以下错误:

  

连接超时已过期。超时时间已过   尝试使用登录前握手确认。这个   可能是因为登录前握手失败或服务器失败了   无法及时回复。尝试时花费的时间   连接到这个服务器是 - [预登录]初始化= 72;   握手= 44924

请记住,我没有对连接字符串或SQL Server 2000服务器/数据库进行任何更改。所以必须有一个原因,为什么它自新增加以来发生。

我的连接项目相当香草

conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sqlStatement;
SqlDataReader dr = cmd.ExecuteReader();
resultData.Load(dr);
dr.Close();
conn.Close();

我的连接字符串看起来像

Data Source=192.168.1.200;Persist Security Info=false;Initial Catalog=MyDB;User Id=MyUser;Password=MyPW;Timeout=45;

您可以看到我对超时进行了更改,但这不起作用。但是,再一次,我不应该做任何改变。我昨天刚刚应用了VS 2010 SP 1,这是唯一的变化。帮助!

2 个答案:

答案 0 :(得分:6)

我通过在服务器防火墙上打开端口1433(SQL)来修复此问题。

答案 1 :(得分:1)

我遇到了同样的问题。我通过允许SQL客户端和防火墙中的SQL主机之间的连接解决了这个问题。绝对,您可以授予端口1433访问权限,该访问权限专门用于SQL Server。