Есть еще альтернатива WCF duplex, но у него есть ряд особенностей, которые нужно учитывать:
1. Для использования через http требует создания отдельного обратного канала, поэтому лучше использовать net.tcp
2. Для поддержания открытых обратных каналов необходимо вручную реализовать пинг
Обидно, что для такой, казалось бы типовой задачи Microsoft не дал удобный механизм из коробки, wcf но все равно приходится подкручивать и доводить до ума