Нет событий в WCF. Если вы хотите имитировать событие, вам все равно придется вызывать какую-либо операцию, открытую для всех клиентов = вы должны вызвать службу WCF или обратный вызов, предоставляемый для клиента.
Что вы подразумеваете под веб-клиентом? Вы имеете в виду код JavaScript, работающий в веб-браузере? В таком случае нет, вы не можете достичь этого с WCF. Вы можете использовать только вызовы AJAX от borowser и постоянно опрашивать сервис на предмет возможных «событий».
Если вы имеете в виду приложение ASP.NET, то теоретически ответ - да, но на практике это будет довольно сложно. Причина в том, что в ASP.NET вы обрабатываете только текущий HTTP-запрос от какого-либо обработчика - например, Page. Время жизни обработчика предназначено только для обслуживания одного запроса. В связи с этим использование дуплексного сервиса не имеет особого смысла, потому что для получения обратных вызовов дуплексным сервисом ваш клиентский прокси должен жить. Если вы откроете прокси в Page, он умрет после обработки запроса. Если вы открываете прокси в отдельном потоке, вы должны каким-то образом сопоставлять поступающие обратные вызовы с реальным клиентом, но клиент все равно должен опрашивать веб-сервер, чтобы получать уведомления о обратных вызовах. Аналогичная ситуация будет с выставлением сервиса в приложении ASP.NET.
Разница между асинхронными и дуплексными вызовами велика. В асинхронном шаблоне один запрос всегда имеет один ответ. Resonse не отправляется без запроса. В дуплексном режиме вы можете сделать один запрос и получить тысячи обратных вызовов с сервера.