2011-06-07 30 views
1

我一直在研究項目中的一個小文件管理器模塊,其中文件夾列表顯示在樹視圖中。我已經在JavaScript中完成了所有的事情。每次我點擊一個節點時,數據列表都會被提取到一個數據讀取器中並填充到前端。 但是,當我在IIS中部署應用程序時,在大約18次後續點擊之後,IIS被暫停,我必須重新設置它。當我檢查事件查看器時,出現以下錯誤:有關asp.net中最大池大小的問題

異常類型:InvalidOperationException異常消息:超時已過期。在從池中獲取連接之前已超時。發生這種情況的原因可能是因爲所有連接池都在使用中,並且達到最大池大小。

因此,在我的web.config連接字符串中,我將pooling設置爲True,並將最大池大小設置爲200,問題就解決了。

但我不知道是否這樣使用連接池大小是一個好習慣。或者我們如何防止打開這麼多的連接。 謝謝!

回答

6

我認爲發生的事情是您不釋放未使用的資源。更具體地說,您絕對必須在所有與數據庫相關的對象上調用Dispose(),如SqlConnectionSqlDataReader等。或者,更好的是,將它們包裝在using語句中。對於SQL Server

+0

實際上即時關閉連接。在datareader中我明確地調用reader.Close(),是否需要Dispose()方法? – Paras 2011-06-07 09:59:08

+0

是的,你不需要打電話給reader.close()等等...... – 2011-06-07 10:00:50

1

樣本連接字符串:

"Data Source=(local);Initial Catalog=pubs;User ID=sa;Password=;Max Pool Size=75;Min Pool Size=5;" 

做這樣可以幫助你:)

最大池大小的默認值爲100 你可以將其設置爲一個較大的數字也至於性能的服務器是不是一個問題..

+0

thnks夥計!但問題是,最大池大小爲100的還是越來越少,當用戶數增加時會發生什麼? – Paras 2011-06-07 10:00:57