1
考慮以下情況:WCF客戶端,是否保存引用?
有一個Windows服務託管WCF服務。
WCF服務提供客戶端與位於物理上不同機器上的AppFabric服務器之間的接口。它retreievs對象,計算它並返回最好的一個。
20-30客戶端可以同時連接到該服務,這是不是很多。
什麼會更好,每次在服務上完成查詢時創建實例,或者讓客戶端對象作爲成員並調用函數。創建一個實例拋棄所有與嘗試finally塊,我不喜歡,但客戶端連接怎麼樣,有什麼缺點?主機是否可以重新啓動並讓客戶端仍然可以工作?什麼是通常/首選的方式來做到這一點?
try
{
PreOrderService.PreorderServiceClient proxy = new PreOrderService.PreorderServiceClient("netTcpPreorderService");
List<PreOrder> preOrders = proxy.FindWallet(preOrder.WalletId);
}
finally
{
if (proxy.State != CommunicationState.Faulted)
proxy.Close();
}
[WCF代理生命週期的最佳實踐 - 或者關閉WCF代理的頻率如何?]可能的重複(http://stackoverflow.com/questions/4047524/best-practice-for-wcf-proxy-lifetime-or – CodeCaster
我有一個答案,我刪除了,因爲進一步閱讀(即CodeCaster可能重複的問題,以及CodeCaster在我的答案的評論中提出的一些觀點)告訴我,我自己的答案是無能的。我希望得到的一個重要部分 - 即使您確實讓代理成爲對象成員(很確定您仍然可以),但您仍然需要在每次通過代理進行調用時嘗試/ catch/finally。 –