Утечка памяти в WCF (дуплекс) на сервере

Привет, у меня возникли проблемы со службой, в которой WCF работает в дуплексном режиме. Он теряет память (не сильно, но это около 80 МБ в день), и после того, как профилировщик памяти работал вместе со службой в течение 24 часов, я обнаружил, что большая часть памяти находится вbyte[] ссылается на довольно беспорядок, но большинство ссылок заканчивается примерно так: и «корень» выглядит так:

Я тоже вижу многоServiceChannel (около 200) пришло (я думаю) из callback-каналов.

Я уверен, что у меня есть только 1 из них для каждого из подключенных клиентов.

В целом моя проблема, кажется, почти такая же, как эта:утечка памяти в реализации Silverlight Wcf но на стороне сервера.

Я даже попробовал[MTAThread] вещь, упомянутая здесь:Служба WCF теряет дескрипторы и память, когда клиент истекает но это просто не решает проблему.

Я просто не думаю, что проблема в моем коде, так как я обертываю callback-каналы после получения егоOperationContext.Current.GetCallbackChannel<IServiceConnectorCallback>() в одном из моих собственных объектов, и те не просачиваются (есть только один из них для каждого клиента в памяти при любом данном снимке) - уверен, что я несколько раз сбрасывал эти обратные вызовы, поскольку канал мог измениться (клиенты теряют соединение или переподключаются ) но у меня нет способа избавиться от старых ссылок, поэтому я их просто отбрасываю, и сборщик мусора должен выполнить свою работу над ними.

Я используюPerCall на моем сервисе, поэтому я не имею никакого отношения к этим объектам в моем коде вообще.

Я действительно понятия не имею, как я могу справиться с этим, кроме перезапуска службы каждые несколько дней - решение, которое я не хочу сейчас искать :(

Поэтому, пожалуйста, дайте мне некоторую помощь / подсказки по этому вопросу - большое спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос