Как сделать веб сервис(службу) у которой можно было бы запрашивать состояние.
Веб служба простая - получает параметры в формате xml и возвращает бинарный файл. Загвоздка в том, что процесс может быть долгим, было бы здорово имет возможность узнать в каком состоянии служба (отобразить прогресс бар на клиенте, вывести текущую операцию).
Как это можно сделать применительно к .Net?
В качестве плохого решения вижу асинхронный запуск сервиса, который будет логировать свои действия например в БД и лог-файле, а веб-клиент будет периодически читать эти логи, отображая пользователю.
Готового скорее всего нет, всё модульное. Отдельно win сервис, отдельный iis и отдельная логика по возвращению данных на клиент. В качестве последнего можно использовать или ajax-call'ы, или long pooling или SignalR, как вариант