Что касается мониторинга разговора между клиентом и сервером, я бы порекомендовал использовать для этого Fiddler , а также посмотрите эту ссылку , которая говорит о передаче больших данных с помощью веб-сервисов..
Я не уверен, стоит ли проводить рефакторинг вашего кода, но если это так, вы можете подумать о стратегии MTOM . Вот ссылка на реализацию WCF.Это позволяет отправлять / получать двоичные данные по частям.Это здорово, потому что разбиение данных на части в сочетании с пользовательским интерфейсом AJAX позволит вам представить индикатор выполнения пользователю, который его загружает, и поможет увидеть, какой статус у вас на уме.