这是该问题的后续问题:
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
方法处理客户端,方法是仅在此处关闭客户端,但这意味着始终保持连接打开。.
关于如何处理这种情况是否有约定?