WCF использует временные буферы для обработки сообщений. То, что вы воспринимаете как утечку памяти, может быть временными буферами, которые еще не были собраны.
Чтобы не создавать новые буферы постоянно, WCF использует BufferManager для повторного использования буферов, до предела, указанного в maxBufferPoolSize (ссылка на элемент здесь ) , который по умолчанию составляет 512 КБ. Любые запросы, превышающие этот предел, приводят к созданию новых буферов, которые никогда не используются повторно и должны быть подвергнуты сборке мусора.
Другая опция для проверки - maxBufferSize, которая ограничивает максимальный размер буфера, который может быть возвращен BufferManager. Большие буферы не объединяются и должны быть удалены. Если вы используете большие сообщения, вы можете уменьшить временные буферы, увеличив это свойство.
Попробуйте увеличить maxBufferPoolSize
, чтобы посмотреть, сможете ли вы уменьшить использование памяти. Хотя я бы настоятельно рекомендовал НЕ использовать его максимально, поскольку буферы из пула никогда не освобождаются до тех пор, пока домен приложения (то есть пул приложений) не будет перезагружен. Период большого трафика может привести к тому, что будет использовано много памяти и она никогда не будет освобождена.