ADO.Net应用程序有时只能连接到本地网络上的另一台服务器。给定的连接尝试是成功还是失败似乎是随机的。连接使用以下形式的连接字符串:
Server=THESERVER\TheInstance;Database=TheDatabase;User
Id=TheUser;Password=ThePassword;
返回的错误为:
连接超时。尝试使用登录前握手确认时超时。
这可能是因为登录前握手失败或服务器无法及时响应。
尝试连接到此服务器时所用的持续时间是- Pre-Login initialization=42030;handshake=0;
.NET应用程序是一个执行以下代码的小型测试应用程序:
using (SqlConnection conn = new SqlConnection(cs))
using (SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM TheTable", conn))
{
conn.Open();
int rowCount = (int)cmd.ExecuteScalar();
}
TheTable很小,只有78行。
但是,在.NET应用程序收到此错误的同一台机器上,我可以使用SSMS和连接字符串中指定的用户Id/密码连接到THESERVER。
为什么从ADO.Net应用程序连接可能失败,但使用来自SSMS的相同凭据成功?
https://stackoverflow.com/questions/15488922
复制相似问题