Ich muss einen Weg entwerfen und implementieren, um mit lang laufenden Prozessen in einer Client/Server-Anwendung umzugehen. Ein typischer langwieriger Prozess würde 2-3 Minuten dauern. Ich muss der UI in der Zwischenzeit auch einen Fortschritt melden und die Benutzeroberfläche reaktionsbereit halten.Fortschrittsbenachrichtigung in WCF für lang andauernde Prozesse - Wie?
Nachdem diese in meinem Kopf dachte ich, ein paar Lösungen:
Ein Asynchron-Anfrage den Vorgang zu starten, die den serverseitigen Prozess startet und gibt einen zugewiesenen LRPID (Long Lauf Prozess-ID) dann Abfrage regelmäßig vom Client mit dieser LRPID. (Pro: einfach zu implementieren, keine Firewall Herumspielen Con: unelegant, raubend Ressource etc.)
Verwenden ein Duplex-Bindung (wie NetTcpBinding) und initiieren Rückrufe vom Server als Fortschritte gemacht werden (Pro: elegant, effizient, Con: Deployment Alptraum)
[Ihr Vorschlag ???]
Was würden Sie davon halten?
Was ist die Client-Seite app geschrieben? –
Bereitstellungsalbtraum? Warum, wegen IIS/WAS? Dann benutze sie nicht. –
@Daniel Auger: Die Client-App ist in WPF geschrieben –