討論區快速選單
知識庫快速選單
傑米的攝影旅遊筆記 政府補助!學嵌入式+物聯網 程式設計俱樂部Facebook粉絲團
[ 回上頁 ] [ 討論區發言規則 ]
已超過連接逾時的設定,並已達共用集區大小的最大值
更改我的閱讀文章字型大小
作者 : subbug(賽伯蛀蟲) 人氣指數超過50000點
[ 貼文 176 | 人氣 55632 | 評價 540 | 評價/貼文 3.07 | 送出評價 9 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/9/4 上午 04:06:32
已超過連接逾時的設定,並已達共用集區大小的最大值
-----------------------------------------------
各位大大們好,小弟目前用ASP.NET 寫一線上系統,資料庫用Access都沒問題。但轉成SQL Server後,剛開始登入操作也都ok,但每當操作一陣子約10~20多秒後,就會整個系統出現錯誤無法再連接資料庫,IE往前一頁、往後一頁都會出現同樣的錯誤畫面,錯誤訊息如下,小弟弄了一整天還解決不了,能否請大大們指引可能錯誤,或略為提示我該往那個方向去除錯呢?謝謝你們。


'/' 應用程式中發生伺服器錯誤。
--------------------------------------------------------------------------------
已超過連接逾時的設定。在取得集區連接之前超過逾時等待的時間,可能的原因為所有的共用連接已在使用中,並已達共用集區大小的最大值。
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

例外詳細資訊: System.InvalidOperationException: 已超過連接逾時的設定。在取得集區連接之前超過逾時等待的時間,可能的原因為所有的共用連接已在使用中,並已達共用集區大小的最大值。
作者 : kueiy(kuei)
[ 貼文 3 | 人氣 517 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/9/1 下午 02:32:51
糟糕...我也遇到相同問題
作者 : cofeshop(cofeshop)
[ 貼文 4 | 人氣 1 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人subbug註記此篇回應為最佳解答 2004/9/15 下午 10:12:26
記得要把SqlDataReader close喔!
作者 : subbug(賽伯蛀蟲) 人氣指數超過50000點
[ 貼文 176 | 人氣 55632 | 評價 540 | 評價/貼文 3.07 | 送出評價 9 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/9/16 上午 02:43:58
沒想到陳年舊文還被挖出來回覆,仍感謝樓上回應的大大。


方案:
     SqlDataReader1.Close() '關閉連結
     SqlConnection1.Close()
     SqlCommand1.Dispose() '手動釋放資源
     SqlConnection1.Dispose()
     SqlConnection1 = Nothing '移除指標

http://j2se.myweb.hinet.net/

現在大部分的資料庫和 Data Provider 都有支援 Connection Pooling 機制,亦即在建立完資料庫的連線後,當開發人員呼叫 Close 方法關閉一個資料庫的 Connection 物件時,.NET 的資料提供者並不會將這個物件所佔用的記憶體空間釋放掉,而是將此物件暫存至 Pool 之中以便可再重複使用。若在設定時間(預設為 60 秒)內沒有程式使用到此物件,或是呼叫了 Dispose 方法,則.NET 資料提供者才會真正關閉這個連線,並由 Garbage Collector 自動將資源收回。因此,常有網頁開發人員在討論區提到,是否有必要在呼叫 Close 方法後,再呼叫 Dispose 方法並將 Connection 設為 Nothing(or Null)?答案是非必要的。因為 GC 過一陣子就會自動回收未再被參照的連線,手動呼叫 Dispose 只不過提早回收的動作而已。

由於 GC 只會在系統閒置或記憶體不足時才會啟動,因此除非是使用頻率非常繁複的資源,否則交由 GC 自行處理即可。而設為 Nothing(or Null)也只是將 Connection 變數的位置清除(Null Reference),事實上原來 New 出來的 Connection 物件還是存在。而 Dispose 方法是用來處理自行建立的 Windows 資源,但又不會自行釋放的物件,如檔案(開檔與關檔)、GDI 物件(直接由 Win API 叫用)…等等。【
 板主 : 徵求中
 > 資料庫設計與應用 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 資料庫設計與應用 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
資料庫設計與應用
1 ㄉ一ˊㄎㄜˋ 350 
2 好說 120 
3 BlueTulip 110 
4 老芋仔 90 
5 坤哥 80 
6 cnliou 80 
7 小朱 60 
8 HKLN.net 60 
9 小元元 60 
10 Aries 50 
資料庫設計與應用
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875