考虑以下场景:
有一个托管 WCF 服务的 Windows 服务。
WCF 服务提供客户端和位于物理上不同的计算机上的 AppFabric 服务器之间的接口。它检索对象,对其进行计算并返回最佳对象。
20-30 个客户端可以同时连接到该服务,这并不多。
更好的是,每次对服务进行查询时创建一个实例,或者将客户端对象作为成员并调用函数。使用我不喜欢的 try finally 块创建一个实例会乱扔所有东西,但是客户端连接呢,有什么缺点?可以重新启动主机并让客户端仍然工作吗?通常/首选的方法是什么?
try
{
PreOrderService.PreorderServiceClient proxy = new PreOrderService.PreorderServiceClient("netTcpPreorderService");
List<PreOrder> preOrders = proxy.FindWallet(preOrder.WalletId);
}
finally
{
if (proxy.State != CommunicationState.Faulted)
proxy.Close();
}