Уведомить службу WCF об отмене выполняемой в данный момент операции и возврате оставшихся данных. - PullRequest
0 голосов
/ 29 июля 2011

У меня есть это клиентское приложение, которое отправляет тысячи элементов для удаления в мою службу wcf.Поскольку данные отправляются навалом, даже если я отменяю операцию (с индикатором выполнения), все элементы удаляются.Мне нужно иметь возможность отменить операцию удаления в службе и получить элементы, которые не были удалены.Спасибо.

1 Ответ

0 голосов
/ 29 июля 2011

Какой InstanceContextMode вы используете?

То, что вы хотите сделать, будет работать с InstanceContextMode Singleton или Session, но не с PerCall.

Я полагаю, что ваш метод, который инициирует массовую операцию удаленияis OneWay.

Создайте поле bool (изначально false) в вашем сервисе.Ваш цикл, который удаляет записи одну за другой, проверяет этот флаг и останавливается, если флаг имеет значение true.

Создайте в вашем сервисе другой метод, который устанавливает для этого поля значение true.Вызвать новый метод с вашего сайта, когда вы нажмете кнопку «Отменить удаление».Цикл удаления записей будет прерван.

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

Вы можете сразу же вернуться во втором методе списка, но это не гарантирует точногоРезультаты.Что я хотел бы сделать, это подождать 200 мс, прежде чем вернуться.Таким образом, вы знаете, что элемент, удаленный из списка, действительно удаляется в БД.

Надеюсь, это понятно ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...