始终保持打开WCF连接与在每次通话中重新创建客户端

时间:2019-05-24 11:16:25

标签: c# wcf dispose idisposable

这是该问题的后续问题:

What could be causing a "Cannot access a disposed object" error in WCF?

在关闭连接后尝试重新打开与客户端的连接后,我也遇到了“无法访问已处置的对象”异常。我正在这样做:

try
{
   if (!(client.State == CommunicationState.Opened) && !(client.State == CommunicationState.Opening))
   {
         await Task.Run(() => client.Open());
   }
   ...
finally
{
    client.Close();
}

重新输入代码后,再次引发异常。

链接问题中可接受的答案表明:

1)每次需要调用Web服务时都进行类似client = new WebServiceClient()的操作。

2)实现IDisposable并通过Dispose方法处理客户端,方法是仅在此处关闭客户端,但这意味着始终保持连接打开。.

关于如何处理这种情况是否有约定?

0 个答案:

没有答案