Hallo,
ich bin neu im Forum und hoffe das ich hier richtig bin.
Ich habe folgendes Problem:
Ich habe ein Programm welches als Hauptprogramm laufen soll (z.B. auf dem Server). In diesem Programm sind die Datenbankeinstellungen usw. in den AppSettings hinterlegt. Nun habe ich ein Client Programm, welches auf allen Clients im Netzwerk laufen soll. Dieses Client Programm soll die Datenbankeinstellungen usw. vom Hauptprogramm auf dem Server erhalten. So dass man bei einem Datenbankwechsel nicht alle Clients auswechseln muss sondern Zentral die Einstellungen ändern kann.
Nun habe ich keine Ahnung wie ich das richtig anstellen kann das es funktioniert. Ich muss auch dazu sagen das ich relativ neu in der C# Programmierung bin.
Danke im Voraus. 😃
Hallo,
die Appsettings werden normalerweise automatisch mit dem Programmstart geladen, wenn du die Datenbankeinstellungen zentral ablegen willst, musst du dir 'ne alternative Lösung ausdenken, eine Datei auf einem Netzwerkpfad wäre sehr einfache Option.
Geht natürlich auch komplizierter 😃 Je nach Geschmack und Anforderung
Wenn's zum weinen nicht reicht, lach drüber!
Danke für den Hinweis. 😃
Ich würde da eine Settingsdatei mit allen Einstellungen erstellen und diese dann über den Netzwerkpfad abrufen.
Nun ist aber mein nächstes Problem, wie mache ich den Client den Netzwerkpfad bekannt.
Kurz zur Erläuterung:
Es soll so sein das später das Client Programm über das Hauptprogramm auf die Clients übertragen wird.
Wenn sich aber einmal der Netzwerkpfad ändert bzw. der Server, wird das schon wieder nicht funktionieren, da der Pfad nicht mehr stimmt. Und ich möchte das der User nichts an dem Programm konfigurieren soll.
Die Anzahl der Settings-Dateien ist nicht begrenzt.
Eine Settings-Datei auf Höhe der Exe wirst Du immer haben - die auf der Ablage ist dann eben die zusätzliche.
Ganz einfach quasi.
PS: Netzwerkpfade zählen unabhängig von .NET per default für das System als unsichere Quelle.
Bin mir nicht sicher, ob in allen Fällen das mit Config-Files unproblematisch ist. Zumindest das Ausführen von Exen auf Netzlaufwerken kommt mindestens eine Warnung, wenn diese sich nich in einer als sicher konfigurierten Zone befindet.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ja das mit dem Netzwerkpfad gefällt mir auch nicht so als Lösung, was würde den da noch in Frage kommen?
Danke erst einmal für die Antwort 😃
Hi,
dann lass dir doch im Client-Programm vom Server-Programm die Einstellungen geben.
Wie kommunizierst du denn mit dem Server-Programm?
Aber wieso soll das Client-Programm überhaupt die Datenbankeinstellungen des Servers kennen?
Der Sinn einer Client-Server-Architektur ist doch gerade, daß der Server die Aufgaben für die Clients erledigt (z.B. Datenbankabfragen etc.).
Hallo muench-it,
was würde den da noch in Frage kommen?
leg die Connection-Strings auf dem Server in eine Datei (z.B. connection-string.txt) und die Clients können sich diese dann per WebRequest einfach holen.
Sonst beachte bitte den Hinweis von Cat - möglicherweise kannst du durch eine andere Architektur das Problem gleich schon beseitigen.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Ok, danke erst einmal für die Antworten.
Ich denke ich muss die Sache noch einmal etwas überdenken 😃