Kommunikation mit einem Dienst

20/11/2009 - 14:41 von Tamara Mikes | Report spam
Salü alle zusammen

Bin mich gerade am Einarbeiten in Windows Dienste. Ich muss einen Dienst
entwickeln, der eine Textdatei nach einem vorgegebenen Zeitschema (alle 3
Tage) in eine Datenbank importiert.

Nun möchte ich, in einer Client Anwendung meinen Dienst ansprechen um dem
Dienst zu sagen, warte nicht 3 Tage sondern mach den Job jetzt sogleich.

Meine Frage: Wie spreche ich aus einer Client Anwendung (c#) meinen Dienst
an? Gibt es einen guten Link?

Vielen Dank für Hinweise
Gruss Tamara
 

Lesen sie die antworten

#1 Konrad Neitzel
20/11/2009 - 15:39 | Warnen spam
Hallo Tamara,

ich würde hier mehrere Möglichkeiten sehen, diese Funktionalitàt
darzustellen.

Erst einmal ist ein Windows Service ein in sich abgeschlossener Prozess,
der àhnlich einem laufen Clientprogram ist. Es gibt einige klar
definierte Schnitstellen, über die der Service gestartet / gestoppt /
angehalten / fortgeführt / ... werden kann.

Eine Lösung könnte nun also sein, den Service so zu schreiben, dass nach
einem pause / resume (oder stop/start) Zyklus die gewünschte Aufgabe
direkt duchgeführt wird.

Eine andere Möglichkeit, die ich sehe, wàre einfach die Nutzung von
Flags. Diese könnte man frei definieren (z.B. in der Registry oder eine
Tabelle in der Datenbank oder ). Dies könnte notwendig sein, wenn
z.B. sichergestellt ist, dass wirklich 3 Tage vergehen, ehe die Daten
importiert werden.

(Sprich: Der Service liest beim start aus einer bestimmten Quelle die
letzte Laufzeit und basiert auf dieser. Damit kann der Service neu
gestartet werden ohne dass eben sofort ein Import erfolgt.)

Ansonsten nutzen wir die Windows Communication Foundation zur erstellung
von Webservices. Dies würde vor allem dann sinnvoll, wenn deutlich mehr
an Interaktion gewünscht würde. Hat aber den großen Vorteil, dass man
hier dann wirklich aus dem vollen schöpfen kann und man ein sehr
màchtiges Werkzeug an die Hand bekommt (Man ist damit komplett offen und
selbst ein Java Entwickler auf einem nicht Linux System kann dann selbst
schnell einen Client schreiben, der auf Deinen Service zugreift. )

Das wàren so meine Ideen. Ich würde da zu der WCF Lösung greifen, da man
damit offen ist und man das System problemlos erweitern kann. Aber auch
die anderen einfachen Lösungen sind denkbar.

Mit den besten Grüßen,

Konrad

Ähnliche fragen