超時時間已到。超時時間已到,但是尚未從池中獲取連接。出現這種情況可能是因爲所有池連接均在使用,並且達到了最大池大小。

超時時間已到。超時時間已到,但是尚未從池中獲取連接。出現這種情況可能是因爲所有池連接均在使用,並且達到了最大池大小。 
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以瞭解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。 

異常詳細信息: System.InvalidOperationException: 超時時間已到。超時時間已到,但是尚未從池中獲取連接。出現這種情況可能是因爲所有池連接均在使用,並且達到了最大池大小。

這是個老問題了!你就查兩點:  
  一、看所有open的連接是否都close了。  
  二、如果訪問量很大,加上Max Pool Size=512這一句,當然這是要以損失系統性能爲代價的!  
  這樣以後一定可以解決你的問題!

  解決方案一

我 想原因可能是併發操作。DataReader是獨佔連接的,就是說你的程序可能設計上有問題。比如說最大連接設100,假設有100個人同時使用 DataReader正在讀取數據庫內容,那麼當第101人讀取的時候,連接池中的連接已經沒有了,就會出現上面的錯誤。DataReader是獨佔連接 的,每個DataReader都要佔用一個連接。當然這個情況是偶爾出現的,所以會很長時間出現一次,因爲只有同時有超過連接池最大連接數量的併發操作才 會發生。而且你加大併發數量只能暫時緩解問題,如果你加大到200個併發連接,如果有201 人同時操作怎麼辦?你說了你使用Connection對象的Close()方法,這是不行的,因爲Close()方法僅僅是關閉連接,但這個連接沒有釋 放,還是被這個對象佔用,要釋放必須使用Connection的Dispose()方法顯式釋放連接纔可以,否則這個對象佔用的連接只能等到垃圾收集的情 況下才能被釋放。這種情況肯定會出現“超時時間已到”的錯誤。

解決方法:
  1 修改幾個關鍵頁面或訪問比較頻繁的數據庫訪問操作,使用DataAdapter和DataSet來獲取數據庫數據,不要使用DataReader。
  2 在訪問數據庫的頁面上使用數據緩存,如果頁面的數據不是經常更新(幾分鐘更新一次)的話,使用Cache對象可以不用訪問數據庫而使用緩存中的內容,那麼可以大大減少連接數量。
  3 修改代碼,把使用Connection對象的地方都在Close()後面加上Dispose()調用。
  4 建議對數據庫操作進行大的修改,建立自己的數據庫操作代理類,繼承System.IDisposable接口,強迫釋放資源,這樣就不會出現連接數量不夠的問題了。

解決方案二

解決方法(*):WEB.config 裏面:在數據庫連接加 Max Pool Size = 512;server=local;uid=;pwd=;database=2004;Max Pool Size = 512;">一勞永逸。

解決方案三

估計是連接(Connection)對象沒有Close。倒是不必Dispose,而DataReader用完後應該關閉,但不關閉也沒問題,只是不關閉的話此連接對象就一直不能用,只要你最終關閉了連接對象就不會出問題。  
   
  連接對象在Open後的操作都放在try塊中,後面跟一個finally塊:conn.Close();

錯誤: 3154一般是由於恢復數據庫備份時指定的數據庫名和原有數據庫中數據庫相同引起的  
  你指定一個不易重複的名字,  
  或者在恢復時指定選項:覆蓋現存數據庫  
   
  本人在將SQL2000數據庫導入SQL2005出錯,錯誤信息如下:

還原 對於 服務器“EDWARD\\TRACY”失敗。 (Microsoft.SqlServer.Smo)

有關幫助信息,請單擊: http://go.microsoft.com/fwlink?Prod...er&LinkId=20476

------------------------------
其他信息:

執行 Transact-SQL 語句或批處理時發生了異常。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------

備份集中的數據庫備份與現有的 \'foodgood\' 數據庫不同。
RESTORE DATABASE 正在異常終止。 (Microsoft SQL Server,錯誤: 3154)

今天我準備把sql2000 的備份數據庫 sp.bak 還原在sql2005 上 (因爲課堂上用的是sql2000 而我自己電腦裏裝的是sql2005 )遇到了點麻煩。就是象sql2000 一樣操作還原時出現了點問題。說不能還原,最後找到了點方法終於搞定。

1,在sql2005上新建一個數據庫比如:商品


2,選擇要還原的 sql2000備份文件

3,這裏很重要,選中“覆...”看圖

sql2000 備份的數據庫還原到sql2005後,選擇“數據庫關係圖”提示:此數據庫沒有有效所有者,因此無法安裝數據庫關係圖支持對象。若要繼續,請首先使用“數 據庫屬性”對話框的“文件”頁或 ALTER AUTHORIZATION 語句將數據庫所有者設置爲有效登錄名,然後再添加數據庫關係圖支持對象。  
   
解決方法如下: 
1、設置兼容級別爲90(2005爲90) 
USE [master] 
GO 
EXEC dbo.sp_dbcmptlevel at dbname='數據庫名', @new_cmptlevel=90 
GO  

或是選責你還原的數據庫,點右鍵,選屬性->選項->兼容級別,選擇sqlserver2005(90) 然後確定,

  這時,你在該數據庫下展開“數據庫關係圖”節點時會有個提示,"此數據庫缺少一個或多個使用數據庫關係圖所需的支持對象,是否創建",選擇“是”即可。

2、通過以上的方法操作,如果問題依然存在的話,按下列方法繼續

選擇你的數據庫,然後選擇"安全性"->"用戶",選擇dbo,打開屬性頁,如登錄名爲空的話,新建查詢,然後

use [你的數據庫名]
EXEC sp_changedbowner 'sa' 

執行成功後,你再選擇"數據庫關係圖"節點,時提示 “此數據庫缺少一個或多個使用數據庫關係圖所需的支持對象,是否創建",選擇“是”即可。 就可以看到原先建的關係圖了。

1、 對Table中的詳細內容,以不同的顏色間隔開相鄰的兩行。

A:選擇Table的Detail行,選擇屬性中的BackgroundColor,值選擇表達式,輸入:=iif(RowNumber(Nothing) Mod 2, "White", "Beige")。

2、設置每面顯示Table表頭或表尾

A:選擇Table Header或Table Footer,將屬性中的RepeatOnNewpage設爲True dot 

3、在每頁都顯示放入的圖片或標題頭等信息。

A:只須在Table Header中加行數,把你要顯示的內容放到單元格中,然後再按第二條方式設置後就可以了。
發佈了9 篇原創文章 · 獲贊 4 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章