Heyho Community,
Ich beschäftige mich derzeit mit der WCF Thematik. Dazu habe ich eine Applikation erstellt, die im Netzwerk diverse Messgeräte ansteuert. Nun bin ich aber auf ein problem gestoßen:
Wie kann ich steuern, das die Anfragen nacheinander abgearbeitet werden (vllt mit timeout wenn operation fertig) falls die einzelnen clients auf dem Service(Den Messgeräten) schreibende methoden (bspw SetTemperature) aufrufen?
Ich möchte keine lösung, lediglich einen denkanstoß 😃
Du könntest den InstanceContextMode auf "Single" stellen und die Daten in eine Queue (FirstInFirstOut-Semantik) ablegen und von dort aus mit einem Thread verarbeiten. Es kann dann aber Sinnvoll sein Bidirektionale Kommunikation zu nutzen, da die Verarbeitung nicht mehr beim Empfangen von Nachrichten passiert.
Alternativ oder eher zusätzlich kannst du wohl auch die Bindung so konfigurieren, dass die Nachrichten die du an deinen Server schickst geordnet bleiben. Ich glaube das fällt unter Behaviour der Bindung (vielleicht auch des Services)
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
Ich habs jetzt über die ReaderWriterLockSlim Klasse gelöst und sperre den Schreibenden zugriff für den entsprechenden thread, welcher als erstes die Transaktion aufruft.
Trotzdem danke für deine idee 😃
Gruß, Killerkruemel