У меня есть служба WCF, которая использует протокол HTTP. Когда в систему попадает особенно большой запрос, он создает большой Byte[], который ведет через буферы к HttpChannelListener и, в конечном итоге, к самому узлу службы. Это остается там даже после завершения транзакции WCF. Это, в свою очередь, вызывает фрагментацию кучи больших объектов, что в конечном итоге приводит к тому, что приложение выдает исключение OOM.
Вот путь к Byte[]: ServiceHost.channelDispatchers.items._items[0].listener.innerChannelListener.typedListener.bufferManager.innerBufferManager.bufferPools[13].pool.globalPool.items._array[0]
Система использует буферизованную связь WCF для транзакций, чтобы обеспечить ее надежность.
Могу ли я что-нибудь сделать, чтобы эти большие объекты не оставались в памяти?