在我的WCF服务上调用Close()
之前,我应该检查一下它是否已经关闭?
即
myWCFService.State != System.ServiceModel.CommunicationState.Closed
我的代码如下:
MyServiceClient myWCFClient = null;
try
{
myWCFClient = new .....();
}
catch
{
}
finally
{
myWCFClient.Close();
}
答案 0 :(得分:2)
WCF客户端是一次性的,所以除了一些警告你可以使用using
:
using(MyClient client = new MyClient()) {
client.DoStuff();
// etc
}
但这有一个很大的问题; WCF客户端上的Dispose
实际上是在出现故障时丢失(丢失原始异常)。有一个很好的解决方法,here,或者我已就此here发布了博客。
答案 1 :(得分:1)
看看这个问题:What is the best workaround for the WCF client using
block issue?虽然不是一字不差地找到了什么,但我认为他的例子可以帮助你。