Windows Service: Einstellungen speichern

12/01/2010 - 00:15 von Lorenz Buchberger | Report spam
Hallo Newsgroup,
Ich schreibe gerade einen kleinen Service, der ein paar Settings braucht.
Ich habe das als Anwendungs-Properties realisiert,
möchte nun aber diese aber zur Laufzeit àndern lassen:

1) durch ein Administrationsprogramm
2) durch den Dienst, welcher die Änderungen selbst durchführen können muss.

Mit den Maschinensettings geht das ja nicht, wie würdet Ihr das machen:

1) Programmverzeichnis für den Dienst schreibbar machen
2) in die Registry schreiben.

Ich finde ja 2 nicht so hübsch, weil es nicht ".NET-way" ist und 1 weil es
sicherheitsmàßig blöde ist und Setup Probleme macht. (ACL setzen beim Setup)

Viele Grüße

Lorenz
 

Lesen sie die antworten

#1 Frank Dzaebel
12/01/2010 - 07:41 | Warnen spam
Hallo Lorenz,

Ich schreibe gerade einen kleinen Service, der ein paar Settings
braucht. Ich habe das als Anwendungs-Properties realisiert,
möchte nun aber diese aber zur Laufzeit àndern lassen.



Nun, "Anwendungs"-Settings sind ja normal nicht
zur Änderung vorgesehen. Es gibt mehrere Möglichkeiten,
Deine Szenario-Anforderungen zu implementieren, bis hin zu einem
eigenen SettingsProvider (es gibt in den VS SDK Samples ein paar
Beispiele dafür - und zum Teil haben wir auch diesen Weg schon benutzt),
...

[Wie wir es machen] : ...
Wir machen das in diesem Szenario so, dass wir eine eigene
(typsichere) Klasse (Serialisierung über XmlSerializer) mit unseren
gewünschten Eigenschaften haben. Wir setzen an die Eigenschaften
mehrere Attribute, zur Nutzung in einem PropertyGrid in der Nicht-
Dienst-App (einfach das SelectedObject setzen). Für die Änderbarkeit
der Settings prüfen wir, ob der User der Nicht-Dienst-App ein
lokaler Admin ist. Die Settings befinden sich unterhalb des Pfades:

[Application.CommonAppDataPath-Eigenschaft (System.Windows.Forms)]
http://msdn.microsoft.com/de-de/lib...apath.aspx

Dieses Verzeichnis muß trotzdem beim Setup über ACLs (Custom Action)
für andere User beschreibbar gemacht werden. Nach dem Ändern der
Settings muß der Dienst neugestartet werden.

Hier ein paar Hintergründe zu Settings-Fragen:

[Cool Client Stuff : Client Settings FAQ]
http://blogs.msdn.com/rprabhu/articles/433979.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen