Вы можете заглянуть в дуплексные службы WCF, хотя у меня неоднозначный опыт. Он работает как любая другая служба WCF, за исключением того, что с помощью этого метода оба конца могут отправлять / получать сообщения независимо. По сути, клиент поддерживает длительное открытое соединение с сервером, которое можно использовать для создания событийного поведения на обоих концах.
Однако я обнаружил, что из-за природы HTTP долго работающие соединения не настолько надежны, и вы можете получить некоторые хитрые исключения, которые могут быть или не быть простыми в обработке. Было бы неплохо создать прототип с этой техникой, чтобы посмотреть, сработает ли она для вас.
см .: http://msdn.microsoft.com/en-us/library/ms731064.aspx