Мне любопытно, как вы определили, что эти настройки являются причиной вашей проблемы, и что вы смотрите, чтобы определить использование памяти, а также сколько времени и сколько запросов вы позволяете ей выполнить.
Получаете ли вы исключение OutOfMemory после пары запросов?
Обратите внимание, что 2147483647 байт - это 2 ГБ, поэтому потребуется 2 или 3 запроса, прежде чем вы исчерпаете память, если эти буферы были полностью выделены и не освобождены.
Вы уверены, что память просто не GC'd, потому что нет причин для этого? Если доступно пространство кучи и при определенных пороговых значениях, у него нет особых причин тратить время на сборку вещей.
Edit:
Вы также можете увидеть различное использование памяти в зависимости от размера этих созданных буферов и объектов. Часть этого описана здесь. По сути .net обрабатывает объекты размером более 85 000 байт как «большие» и уплотняет их по-разному.
Опять же, если вы никогда не получите исключение памяти или фактически исчерпаете память, то у вас, вероятно, нет проблемы. «другое» использование памяти не означает, что это «неправильно». Вы должны загрузить приложение и проверить, действительно ли оно исчерпывает память, что будет указывать на реальную утечку памяти. В противном случае он может просто нарастить память, пока не достигнет максимальных размеров кучи, а затем собрать все.