我們有一個使用WCF開發的3層應用程序。我們的Web層[32位Windows 2003 Sp1]調用與Oracle 10g DB [64位Linux]進行通信的WCF服務[NLB上的64位Windows 2008 R2]。數據庫連接使用Nhibernate 2.2建立。 WCF通信使用BasicHTTPBinding。使用Nhibernate + Oracle的WCF無法間歇性地連接數據庫
在32位測試環境應用程序運行良好,但在上面指定的Live環境中,我們遇到崩潰。具體根據記錄的重複誤差,
System.ApplicationException:>內部異常是
NHibernate.ADOException:當準備選擇stderrorme0_.ERR_NO如 ERR1_10_,stderrorme0_.ERR_TYPE如ERR2_10_,... ....,從 STD_ERROR_MESSAGE stderrorme0_ where stderrorme0_.ERR_NO =:p0發生錯誤 ---> System.InvalidOperationException:Timeout過期。在從池中獲取連接之前已經超時了 。 可能發生這種情況的原因是,所有連接的池都在使用中,並且達到最大池大小。
此錯誤重複,只是表被提取的表更改。
臨時解決方案:重新啓動IIS中託管的WCF服務。
請幫助我們解決您的建議和解決方案。這篇文章是在各種博客之後進行如此多的試驗和錯誤之後提出的。
最可疑的是* not *關閉連接和/或* not *事務請參閱http://stackoverflow.com/q/1642252/1679310 –