我知道这是SO上最受欢迎的问题之一:着名的“SQL错误26”不同之处在于我的C#应用程序第一次成功建立连接,然后拒绝第二次建立连接。我重新启动计算机,应用程序第一次建立连接,然后再次重新启动。SQL网络接口,错误:26在Windows重启后消失
,我可以建立在第一时间让我自信地认为,一个连接的事实:我的服务器名是正确的,我的实例名称是正确的,我用的用户名和密码组合是正确的,服务器计算机上时,服务器上的SQL Browser服务正在运行,并且我可以通过防火墙。
我有一大堆的方法,这些方法都非常相似于以下内容:
private static string connection_string = @"Server=my_server\MS_SQL;User Id=user1;Password=password1"
public static List<string> GetListOfExistingItems(int item_id)
{
List<string> list_items = new List<string>();
try
{
using (SqlConnection sql_conn = new SqlConnection(connection_string))
{
sql_conn.Open();
SqlCommand sql_comm = new SqlCommand("SELECT Name FROM dbo.table1 WHERE ID=" + item_id,
sql_conn);
using (SqlDataReader sql_reader = sql_comm.ExecuteReader())
{
while (sql_reader.Read())
{
list_items.Add(sql_reader["Name"].ToString());
}
sql_reader.Close();
}
}
}
catch (Exception excp)
{
throw new Exception(excp.Message);
}
return list_items;
}
一些有趣的事实:
- 重新启动,解决了这个问题(一次)。
- 注销并登录不能解决问题。
- 如果我不关闭应用程序,而是多次运行查询,则错误不会显示。
- 运行我的应用程序并关闭一次后,我无法从SQL Server Management Studio连接到我的数据库。
- 当我重新启动计算机时,看到没有列出任何程序的“等待后台程序关闭”。我等待一段时间(也许10-20秒),消息消失,电脑最终重新启动。
在此先感谢。
似乎很明显,数据库服务器拒绝同一用户或计算机或IP或MAC的后续连接。首先,确保在完成连接时关闭连接,然后检查服务器配置以查找管理员。 – 2013-03-13 19:09:54
您的应用程序是否创建了一个已经打开的连接?或者,您的应用程序是否以耗尽服务器资源的方式查询数据库? – Greg 2013-03-13 19:12:50
@PieterGeerkens我打开的每个连接都是唯一的,并且嵌套在它自己的使用块中,如上所示。请您详细说明“检查服务器配置以查找州长”? – 2013-03-13 19:37:51