我知道這是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