我有一個最多由10個客戶端調用的web服務。該webservice由7個不同的asmx頁面構成,每頁有大約100-200個功能。在webservice中處理sql-connections的最佳方法是什麼?
所有這些函數都針對MSSQL2005或MS SQL2000數據庫。在一天中的某些時段,來自客戶端的流量很大,似乎我的sql服務器上的連接用完,導致所有客戶端停止。
在每一個函數中,我打開一個連接,執行這些操作,然後關閉連接,有時候事務處理有時不會。
在服務器上,我發現它創建了很多連接,我不知道爲什麼它們不會消失,但是即使在函數完成並結束後,它仍然保留在那裏。所以我可以確保我的10位客戶不時創建超過80個連接。有時候他們中的一些人會消失,有時他們在使用後還有幾個小時。那裏是否有某種集合?
問題1: 是否有另一種方法來處理我應該使用的連接,如每個Web服務或其他任何方式的全局連接?
問題2: 如果它可以處理每個函數的連接,那麼爲什麼它不關閉服務器上的連接,使得打開的連接列表一直越來越大,直到我失去連接 - 錯誤?
這個問題是關係到我的其他問題,但不一樣的:Strange SQL2005 problem. "SqlConnection does not support parallel transactions"
我現在已經縮小下來的「出連接」的錯誤。
您是否使用Windows身份驗證,並通過客戶的身份,還是您的Web服務已經使用的每一個連接一個用戶名/密碼?我認爲前者會影響ASP.NET集中連接的能力。 – 2009-01-06 19:56:14
WebService的有用於創建所有連接一個ConnectionString的。沒有Windows驗證。 – Stefan 2009-01-06 20:49:31