Это дополнительный вопрос к этому вопросу:
Что может быть причиной ошибки «Не удается получить доступ к удаленному объекту» в WCF?
Я также обнаружил исключение «Не удается получить доступ к удаленному объекту» после попытки повторно открыть соединение с клиентом после того, как соединение было закрыто. Я делал это:
try
{
if (!(client.State == CommunicationState.Opened) && !(client.State == CommunicationState.Opening))
{
await Task.Run(() => client.Open());
}
...
finally
{
client.Close();
}
После повторного ввода кода было выдано исключение.
Принятый ответ в связанном вопросе предполагает либо:
1) Делать что-то вроде client = new WebServiceClient()
каждый раз, когда необходимо вызвать веб-сервис.
2) Реализация IDisposable и избавление от клиента в методе Dispose
путем закрытия его только там, но это означает, что соединение должно оставаться открытым все время ..
Существует ли соглашение о том, как справиться с этой ситуацией?