WCF может помочь, потому что он поддерживает различные технологии для надежной передачи сообщений.
Одна вещь, которая может вам помочь, - это сделать так, чтобы клиенты вносили свои изменения данных локально, а затем загружали эти изменения в надежную очередь сообщений. Вы не загрузите все изменения в одной транзакции. Вы можете загружать 10 одновременно, возможно по одному. Поскольку загруженные сообщения обрабатываются на сервере, сервер записывает результаты транзакции в другую очередь, уникальную для каждого клиента. После загрузки (или, может быть, в то же время) клиент проверяет эту очередь, чтобы увидеть результат каждой загрузки. Если результат был успешным, тогда клиент может удалить свою локальную базу данных. Если результат был неудачным, клиент должен попытаться загрузить его снова.
Конечно, вы всегда должны быть осторожны, чтобы ваши попытки восстановления после ошибок не усугубляли ситуацию. Слишком большое количество повторных попыток на плохой ссылке вполне может вызвать больше трафика, который сам по себе может нуждаться в восстановлении и т. Д.
И, конечно же, окончательное решение - перейти к более надежным ссылкам. Не обязательно быстрее, но просто надежнее.