我身邊有一個WCF服務APIWCF:保持客戶活着和時間來關閉它
Class APIWrapper
{
private WCFClient _client;
//constructor opens a client connection
public APIWrapper()
{
_client = new WCFClient();
_client.open();
}
public API1()
{
_client.doSomething1();
}
public API2()
{
_client.doSomething2();
}
}
我想問一個包裝:
Q1將超時異常發生的?如果這個包裝類實例存在太久了? (默認的WCF連接保持活動狀態嗎?沒有在配置中設置該屬性)例如,在構造包裝類之後,其API1或API2將在10分鐘後調用,該時間比此WCF連接的超時值更長。
Q2我是否需要顯式關閉連接,如果是這樣,我應該在下面的包裝類的析構函數中執行它嗎?
~APIWrapper
{
if(_client !=null)
try{
_client.close(); }
catch(Exception e){
_client.Abort(); }
}
關於Q1,Taner是對的,你應該檢查「inactivityTimeout」 – Jordi
謝謝。因此對於Q2,最好有一個析構函數來釋放連接 –
是的,總是釋放資源。 WCF可能以很多未使用的打開的連接結束,導致性能問題。 – Jordi