Вам нужно позвонить Dispose
или Close
как обычно, но этого недостаточно, потому что:
Оператор C# using
приводит к вызову Dispose()
. Это то же самое, что и Close()
, который может выдавать исключения при возникновении сетевой ошибки.
Рекомендованный способ закрыть клиент WCF можно найти здесь, в этой статье MSDN .
Между тем, наличие большого количества ServiceChannel
в памяти не обязательно означает, что они напрямую связаны с проблемой утечки памяти. Они могут просто означать, что ваше приложение во время создания снимка памяти было занято вызовами WCF.
Однако, если бы вы могли найти ServiceChannel
, который должен быть удален, но все еще существует в памяти тогда это было бы хорошим показателем.