Problem Konigurationsdaten WCF Service

15/04/2010 - 14:18 von Andreas Warning | Report spam
Hallo,

in einem WCF Service benötige ich für den DB Zugriff z.B. den
SQL-Servername. Ich habe mittels Settings
einen NAME : ServerName vom TYP string im BEREICH Anwendung den WERT
myServer eingegeben.

Mit der folgenden Anweisung lese ich in den WCF Methoden den ServerName aus:

WcfTest.Properties.Settings s = new WcfTest.Properties.Settings();
string strMyServer = s.ServerName ;

Alles klappt wunderbar.



Jetzt hab ich eine WinForm Anwendung die diesen WCF Service hostet. Diese
WinForm Anwendung hat auch eine Konfigurationdatei in der
Parameter gespeichert werden.
Wenn ich jetzt die Anwendung ausliefere, werden folgende Datei in einem
Verzeichnis gelegt:

WCFService.dll
WCFService.dll.config
WinForm.Exe
WinForm.exe.Config


Meine Proble ist, dass wenn jetzt der Service aufgerufen wird, wird nicht
der Wert (ServerName) aus der ConfigDatei genommen, sondern der Default Wert
von
ServerName. (Dieser Default Wert ist in Settings.Designer.cs definiert.


Hat jemand eine Idee wie ich da vorgehen muss, damit ich den Wert aus der
ConfigDatei bekomme ?


Danke
Andreas
 

Lesen sie die antworten

#1 Marcel Roma
15/04/2010 - 23:56 | Warnen spam
Hallo Andreas,

Am Thu, 15 Apr 2010 14:18:28 +0200 schrieb Andreas Warning:

Hat jemand eine Idee wie ich da vorgehen muss, damit ich den Wert aus der
ConfigDatei bekomme ?



Wenn Du die Einstellungen aus WCFService.dll.config mit der
Konfigurationsdatei von WinForm.exe zusammenführst, sollte der Zugriff auf
die Einstellung 'ServerName' problemlos funktionieren. Dazu kopierst Du
einfach '<section name="WCFService.Properties.Settings" [...]' aus
WCFService.exe.config und fügst sie in die entspr. sectionGroup aus
WinForm.exe.config ein. Genauso verfàhrst Du auch mit
'<WCFService.Properties.Settings>', das Du dann unter applicationSettings
einfügst.

Und wenn Dir das zu umstàndlich ist, und das Einbinden von externen
Konfigurationsdateien über das configSource-Attribut ebenfalls nicht
zusagt, wirf die WCFService.Properties.Settings über Bord und verwende
ConfigurationManager.OpenExeConfiguration (für WinForm.exe.config) oder
ConfigurationManager.OpenMappedExeConfiguration (für WCFService.dll.config)
- das ist m.E. viel flexibler und sauberer.


Gruss
Marcel

Ähnliche fragen