文章編號: 830118 - 上次校閱: 2007年4月23日 - 版次: 1.3

執行 Visual Studio .NET 2003 應用程式時,收到「已超過連接逾時的設定」錯誤訊息

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
全部展開 | 全部摺疊

徵狀

當您在 Microsoft Visual Studio .NET 2003 中啟用 SQL Server 偵錯功能,然後執行應用程式時,卻收到下列錯誤訊息:
已超過連接逾時的設定。在取得集區連接之前超過逾時等待的時間,可能的原因為所有的共用連接已在使用中,並已達共用集區大小的最大值。

發生的原因

SQLClient 集區已經用盡 SqlInternalConnection 物件。

其他可行方案

如果要解決這個問題,請使用下列其中一種方法:

方法 1

將您的專案組態變更為「發行」模式。如果要執行這項操作,請依照下列步驟執行:
  1. 在 Visual Studio .NET 中,按一下 [建置] 功能表上的 [組態管理員],然後在 [使用中的方案組態] 清單中按一下 [發行]
  2. [偵錯] 功能表上,按一下 [開始] 執行應用程式。請注意,您並不會收到<徵狀>一節中所提到的錯誤訊息。

方法 2

變更專案的「偵錯」模式組態屬性。如果要執行這項操作,請依照下列步驟執行:
  1. 在 Visual Studio .NET 中,用滑鼠右鍵按一下方案總管中的應用程式,再按一下 [屬性]
  2. 在 Microsoft Visual Basic .NET 專案的 [組態屬性] 下,按一下 [偵錯],然後在 [啟用偵錯工具] 下,取消選取 [SQL Server 偵錯]

    在 Microsoft Visual C# .NET 專案中,按一下 [組態屬性] 下的 [偵錯],然後在 [偵錯工具] 下,將 [啟用 SQL 偵錯] 的值設定為 [False]

狀況說明

這是原本設計的作法。

其他相關資訊

  1. 啟動 Visual Studio .NET 2003。
  2. [檔案] 功能表上,指向 [新增],然後按一下 [專案]
  3. 按一下 [專案類型] 下的 [Visual Basic 專案][Visual C# 專案],然後按一下 [範本] 下的 [Windows 應用程式]
  4. 將專案命名為 SampleApplication。預設會建立 Form1。
  5. 新增 [button] 控制項至 Form1。
  6. 按兩下加入到 Form1 的按鈕。
  7. [Form1] 類別的頂端加入下列程式碼:

    Visual Basic .NET

    Imports System
    Imports System.Data.SqlClient
    

    Visual C# .NET

    using System;
    using System.Data.SqlClient;
    using System.Diagnostics;
    using System.Windows.Forms;
  8. 在 Visual Basic .NET 中,將下列程式碼加入 [Button1] 按鈕的 [Click] 事件:
    Dim iCount As Integer = 1
    Try
    	Do
    		Dim sqlConn As New _
    		SqlConnection("Data Source=localhost;trusted_Connection=yes;initial catalog = Northwind")
    		sqlConn.Open()
    		Trace.WriteLine("opening connection " & CStr(iCount))
    		sqlConn.Close()
    		Trace.WriteLine("closing connection " & CStr(iCount))
    		sqlConn.Dispose()
    		Trace.WriteLine("disposing connection " & CStr(iCount))
    		iCount = iCount + 1
    	Loop Until iCount > 200
    Catch ex As Exception
    	Trace.WriteLine(ex.ToString)
    End Try
    在 Visual C# .NET 中,將下列程式碼加入 [button1] 按鈕的 [Click] 事件:
    int iCount = 1;
    try{
    	while (iCount <= 200){
    		SqlConnection sqlConn = new SqlConnection("Data Source=localhost;" +
     		"trusted_Connection=yes;initial catalog = Northwind");
     		sqlConn.Open();
     		Trace.WriteLine("opening connection " + iCount.ToString());
     		sqlConn.Close();
     		Trace.WriteLine("closing connection " + iCount.ToString());
     		sqlConn.Dispose();
     		Trace.WriteLine("disposing connection " + iCount.ToString());
     		iCount = iCount + 1;
     	}  
     }catch(Exception ex){
     	Trace.WriteLine(ex.Message);
     }
  9. [建置] 功能表中,按一下 [組態管理員],然後在 [使用中的方案組態] 清單中,按一下 [偵錯]
  10. 在方案總管中,用滑鼠右鍵按一下 [SampleApplication],然後按一下 [屬性]
  11. 在 Visual Basic .NET 專案的 [組態屬性] 下,按一下 [偵錯],然後按一下以選取 [啟用偵錯工具] 下的 [SQL Server 偵錯]

    在 Microsoft Visual C# .NET 專案中,按一下 [組態屬性] 下的 [偵錯],然後在 [偵錯工具] 下,將 [啟用 SQL 偵錯] 的值設定為 [True]
  12. 按一下 [確定] 關閉 [SampleApplication 屬性頁] 對話方塊。
  13. [偵錯] 功能表上,按一下 [開始] 執行應用程式。

?考

如需有關 Microsoft ADO.NET 中連接共用的詳細資訊,請造訪下列 Microsoft 網站:
http://samples.gotdotnet.com/QuickStart/howto/doc/adoplus/connectionpooling.aspx (http://samples.gotdotnet.com/QuickStart/howto/doc/adoplus/connectionpooling.aspx)
如需有關 MDAC 中共用的詳細資訊,請造訪下列 Microsoft Developer Network (MSDN) 網站:
http://msdn2.microsoft.com/en-us/library/ms810829.aspx (http://msdn2.microsoft.com/en-us/library/ms810829.aspx)

這篇文章中的資訊適用於:
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 專業版
  • Microsoft Visual Studio .NET 2003 Academic Edition
關鍵字:?
kbconnpts kbideproject kbsqlclient kbprb KB830118
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。