Медленные операции в классе обслуживания домена RIA Services - PullRequest
0 голосов
/ 10 февраля 2010

sHi All,

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

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

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

Например,

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

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

Есть идеи?

1 Ответ

1 голос
/ 24 февраля 2010

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

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

...