最佳答案
Net 应用程序有时只能连接到本地网络上的另一台服务器。给定的连接尝试是成功还是失败似乎是随机的。连接使用表单中的连接字符串:
数据库 = 数据库; 用户 Id = 用户; 密码 = 密码;
the error returned is:
连接超时过期。在尝试使用登录前的握手确认时超时时间已经过去。
这可能是因为登录前的握手失败或服务器无法及时响应。
尝试连接到此服务器所花费的时间为-[ Pre-Login ]初始化 = 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();
}
Table 很小,只有78行。
但是,在 同一台机器上。NET 应用程序收到这个错误,我能够连接到 THSERVER 使用 SSMS 和用户 ID/密码在连接字符串中命名。
为什么 ADO.Net 应用程序的连接会失败,而 SSMS 的连接却能成功?