Медленные операции в классе обслуживания домена служб RIA

Привет всем,

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

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

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

E.g.

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

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

Любые идеи?


person peter    schedule 10.02.2010    source источник


Ответы (1)


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

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

person Timores    schedule 24.02.2010