2009-07-17 5 views
4

In der App, an der ich gerade arbeite, verwenden wir einige WCF-Dienste mit vielen Methoden. Bis jetzt sind alle Methoden sehr kurz, oft nur um Daten zu bekommen. Ich habe gerade eine Methode hinzugefügt, die viel länger dauert.Umgang mit einem länger laufenden Prozess in WCF

Ich möchte nicht die Zeitüberschreitung in der Config erhöhen, weil 1 Minute lang genug für alle anderen Methoden auf dem Dienst ist.

Was ist der beste Weg, um mit 1 länger laufenden Methode umzugehen? Und wie gebe ich Feedback, dass es noch läuft?

Antwort

4

Die Kombination von WCF mit WF (Workflow Foundation) scheint hier die beste Option zu sein. Workflow Foundation bietet Ihnen viele nützliche Funktionen, einschließlich langfristiger Beständigkeit während der Lebensdauer Ihres lang andauernden Prozesses.

In .NET 3.5 ist es möglich, aber ungeschickt und eine Menge Arbeit.

Hier sind ein paar Links zu diesem Thema:

Mit .NET 4.0, diese "WorkflowServices" wird ein großer Teil der sein neues WF/WCF 4.0-Paket. Sie sollten grundsätzlich in der Lage sein, eine Schnittstelle für jeden Workflow als WCF-Dienst verfügbar zu machen. Klingt sehr vielversprechend, hatte keine Chance, es selbst zu versuchen.

Einige Links für die neuen Sachen:

Marc

5

Eine lang andauernde Aufgabe sollte wirklich als asynchroner Aufruf gezüchtet werden, der dann nach Status (oder einem Ereignis über eine Duplexverbindung) abgefragt werden kann. Für eine wirklich lange laufende Aufgabe möchten Sie vielleicht sogar etwas in Windows Workflow hineinschieben.

Verwandte Themen