使用WCF客户端
问题描述:
在我的应用程序中,我使用client.open和client.close来打开WCF代理通道,使用wcf方法并最终关闭它。我这样做是我的Windows窗体应用程序的几个部分。使用WCF客户端
但是,我注意到client.close不一定立即关闭连接。为什么是这样?我应该使用client.Abort吗?
我是否正确地使用WCF客户端?即clien.open - >调用WCF方法 - > client.close。
感谢您提前提供任何帮助!
Subbu
答
的.Close()
方法将尝试正常关闭的连接,例如挂起的呼叫仍将由服务器完成,并且只有在完成后,连接才会终止。尽可能地使用它 - 这是关闭客户端连接的温和且首选的方式。
.Abort()
真的只是撕下了沟通渠道 - 无论是否还在进行通话。如果.Close()
失败,这是最后的,最后的手段逃生孵化。
作为最佳实践,我想包我的服务电话为try...catch
块,这样的事情:
try
{
myServiceClient.CallSomeMethod();
myServiceClient.Close();
}
catch(FaultException<SomeError>)
{
myServiceClient.Abort();
}
// possibly other catch clauses, too - call .Abort() inside them
catch(CommunicationException)
{
myServiceClient.Abort();
}
感谢。这给了我很好的指导。我已经标记了你的答案 – Subbu 2010-07-23 16:52:55