!Simple! Inter-Anwendungs-Kommunikation über Netzwerk (File R/W lock)



  • Ich muss eine/mehrere Anwendung die auf mehreren PCS in einem Netzwerk synchronisieren. Dazu muss ich von einem vorher klar definierten Master einfache Befehle (Einfach Worte) an die anderen Slaves schicken.
    Wichtig ist das es _sehr_ simpel ist! In die Anwendung so was wie einen „ganzen“ Server rein zu packen soll nicht passieren.
    Daher dachte ich was simpleres als ein Textfile (auf einer Netzwerkfreigabe die alle kennen) auf das der Master schreibt und die anderen nur lesen gibt’s nicht.
    Dazu verwende ich:
    File.WriteAllText( _syncFile, comand);
    File.ReadAllText(_syncFile);
    Der Master schreibt immer wenn er was von den Slaves braucht sein Command hinein. Die Slaves lesen in mehr oder weniger periodischen Abständen was zu tun ist (wie lang die Periode ist hängt von vorhergehenden Befehl ab).
    Was jetzt aber immer wieder passiert ist, dass das Sync-File gelockt ist und nicht gschrieben werden kann. Kann man das irgendwie umgehen? (warum muss den lesen auch Locken?)
    Gibt es andere File Read/writes mit denen das gingt?
    Könnte man immer ein Neues File Schreiben, und das neueste einlesen?
    Jemand Ideen?
    (Was groß komplex anderes will ich nicht ein baun (auch zwecks Kompatibilität zu anderen Teilen des Programms, die keine vernünftige Abstraktion drin haben))



  • Daher dachte ich was simpleres als ein Textfile (auf einer Netzwerkfreigabe die alle kennen) auf das der Master schreibt und die anderen nur lesen gibt’s nicht.

    Das finde ich technisch den falschen Ansatz. Ich würde die Kommunikation über TPC lösen. Oder dann direkt WCF.

    Simon



  • theta schrieb:

    Das finde ich technisch den falschen Ansatz. Ich würde die Kommunikation über TPC lösen. Oder dann direkt WCF.

    Naja, mein Problem ist, dass ich absolut neu bei .NET und C# bin.
    Außerdem bau ich das ganze in eine vorhandene Anwendung ein.
    Dabei gibt es die Haupt-Anwendung, die eine Art Run Engine ist, und den Code den ich schreibe/anpasse verwendet und diverse Methoden abarbeitet.

    Da ich mit solchen Sachen keine Erfahrung hab habe ich mich dafür entschieden.
    Was wäre den der wirklich essentielle Vorteil?
    WCF sagt mir gar nichts.

    Mit dem NetShare läuft es momentan eigentlich, nur hat es manchmal ein File Zugriffs problem gibt (weil eben ein anderer drauf zu greift).


Anmelden zum Antworten