Работа с более длительным процессом в WCF - PullRequest
4 голосов
/ 17 июля 2009

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

Я не хочу увеличивать тайм-аут в конфиге, потому что 1 минуты достаточно для всех других методов службы.

Как лучше всего справиться с одним более продолжительным методом? И как мне дать отзыв, что он все еще работает?

Ответы [ 2 ]

5 голосов
/ 17 июля 2009

Долгосрочное задание действительно должно рассматриваться как асинхронный вызов, который затем можно опрашивать на предмет статуса (или события через дуплексное соединение). Для действительно долго выполняемой задачи вы можете даже захотеть поместить ее в нечто вроде Windows Workflow.

4 голосов
/ 17 июля 2009

Комбинирование WCF с WF (Workflow Foundation) кажется лучшим вариантом здесь. Workflow Foundation предоставляет вам массу полезных вещей, в том числе долгосрочное постоянство в течение всего срока службы вашего длительного процесса.

В .NET 3.5 это можно сделать, но неуклюже и много работы.

Вот несколько ссылок на эту тему:

В .NET 4.0 эти «WorkflowServices» станут большой частью нового пакета WF / WCF 4.0. В основном вы должны иметь возможность предоставлять интерфейс для любого рабочего процесса в качестве службы WCF. Звучит многообещающе, у меня не было возможности попробовать это сам.

Некоторые ссылки для нового материала:

Марк

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