我正在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,这是唯一的变化。帮助!
答案 0 :(得分:6)
我通过在服务器防火墙上打开端口1433(SQL)来修复此问题。
答案 1 :(得分:1)
我遇到了同样的问题。我通过允许SQL客户端和防火墙中的SQL主机之间的连接解决了这个问题。绝对,您可以授予端口1433访问权限,该访问权限专门用于SQL Server。