問候, 我有以下問題。我有一個在IIS7下運行的WCF服務。應用程序連接到它,WCF服務向數據庫發出一些請求。在SQL Server 2005的活動監視器中,我注意到在有102個活動連接之後,IIS7中的應用程序池掛起。在此之後,我無法連接到我的WCF服務。然後只有IIS7重新啓動有幫助。 對於連接我使用的ChannelFactory,它的每個請求後關閉。我也介紹了這樣的代碼,以確保通道被關閉:IIS 7應用程序池 - 無法連接到WCF服務
catch (FaultException)
{
Factory.Abort();
return null;
}
catch (CommunicationException)
{
Factory.Abort();
return null;
}
catch (TimeoutException)
{
Factory.Abort();
return null;
}
catch (Exception ex)
{
Factory.Abort();
return null;
}
finally
{
Factory.Close();
Factory.Abort();
}
我也有以下behvavior爲我服務類:
[ServiceBehavior(InstanceContextMode= InstanceContextMode.Single, ConcurrencyMode=ConcurrencyMode.Multiple, AutomaticSessionShutdown=true)]
我也有我的服務網頁以下.config文件:
<serviceBehaviors>
<behavior name="Server.Service1Behavior">
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
<serviceThrottling maxConcurrentCalls="2147483647"
maxConcurrentSessions="2147483647"
maxConcurrentInstances="2147483647" />
我試過了一切。請幫助我,因爲用戶不能這樣工作。爲什麼在連接到數據庫應用程序池的102個連接掛起後發生? 這裏是數據庫
internal SqlConnection CheckIfConnectionOpen()
{
if (_Connection.State != ConnectionState.Open)
{
_Connection.Open();
}
return _Connection;
}
using (SqlCommand cmd = new SqlCommand(query, _Connection))
{
CheckIfConnectionOpen();
//some parameters for sqlcommand here and execute nonQuery or execute reader
}
是否有人可以幫助我,是因爲我仍然在尋找一個解決方案
我已經設置StartAutomatically和增加失敗的最大數量。我沒有幫助。如何檢查數據庫連接是否已關閉? – 2010-03-03 00:04:50
那它取決於你的數據訪問層。你使用OR/M還是自己管理SessionScope/TransationScope/DBConnection對象? – Russell 2010-03-03 00:09:05
我管理SessionScope/TransationScope/DBConnection的對象自己,每一個選擇查詢使用(SqlCommand的SQLCMD =新的SqlCommand(...))下面的語句開始,我也有在TransactionScope的「使用」 – 2010-03-03 00:15:01