2010-02-10 1 views
0

sHi Все,Медленные операции в доменной службе службы RIA Class

Я использую silverlight 3 с услугами RIA. Мне было интересно, как мне работать с медленными операциями в классе сервисов домена? У меня есть операция, которая займет пару минут. Я получаю тайм-аут WCF через минуту, пока клиент ждет ответа от сервера.

Возможно другой подход? Можно ли сообщить классу служб домена, чтобы начать операцию, а затем опросить сервер каждые 5 секунд, чтобы узнать, закончен ли он.

Я попытался реализовать это, и проблема, с которой я столкнулся, заключается в том, что класс службы домена является новым экземпляром для каждого метода службы домена, который я вызываю. Это означает, что я не могу заставить службу домена начинать поток с моей операции, а позже приходить и проверять его.

E.g.

Вызов службы домена от клиента - «начать работу» (который начинает новую нить)

Вызов службы домена от клиента - «это операция делается» - это не работает, потому что я звоню новый экземпляр доменная служба

Любые идеи?

ответ

1

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

Затем вы можете опросить Silverlight с помощью идентификатора. Новые экземпляры службы домена будут использовать статический член для возврата статуса и результата.