Ответ 1
Закрытие клиента WCF
Клиент имеет унаследованную ответственность за изящное закрытие соединения. Всегда рекомендуется закрыть прокси-клиент. Если привязка между клиентом и сервисом является сеансом транспортного уровня, то закрытие прокси-сервера имеет важное значение для срыва связи между обеими сторонами. Служба имеет порог полезной нагрузки, определенный для одновременных подключений. Если количество параллельных подключений выходит выше этого порога линейно, то общая производительность сервиса уменьшается экспоненциально. Вот почему очень важно как можно скорее избавиться от соединения. Закрытие прокси также уведомляет экземпляр службы о том, что он больше не используется и может быть собран GC (при условии управления экземпляром службы). Если клиент не закрывает соединение, он по-прежнему автоматически сбрасывается таймаутами WCF (находится в файлах конфигурации).
Отмена клиента WCF
В ситуации, когда есть ошибка в взаимодействии сервис-клиент, объекты на обоих концах потенциально полностью нарушаются. Таким образом, использование прокси после исключения не рекомендуется. Учитывая, что WCF-привязка использует сеансы транспорта, клиент после сбоя даже не сможет его закрыть (если не было сеанса транспортного уровня, то клиент мог использовать или закрыть прокси-сервер, но это не рекомендуется, так как конфигурация сеансов может изменение). Поэтому после того, как произошла ошибка, единственной безопасной операцией является прервать прокси-сервер.
Закрыть - это синхронная операция, которая может быть выбрана, если транспортный сеанс был поврежден по ошибке, и это операция блокировки, пока не будет получен подтверждающий ответ от службы (true для некоторых привязок).