Hallo Tutorials,
ich bastel grad an einer Remoting-Schnittstelle.
Aufgabe:
Ein Zähler soll festgelegte Zustände einer IO zählen und diese als Windows-Dienst für andere Anwendungen local und über Netzwerk bereithalten.
Lösungsansatz:
Zum Testen habe ich ein Object wie folgt erstellt:
Ein Server-Dienst bindet dieses Object als *.dll ein:
Und folgender Client soll die Daten des Zählers zeigen können:
Leider ist der Wert in counter.ctr immer 0, wenn der Client das erste mal drauf zugreift, wo liegt mein Denkfehler?
LG D12
ich bastel grad an einer Remoting-Schnittstelle.
Aufgabe:
Ein Zähler soll festgelegte Zustände einer IO zählen und diese als Windows-Dienst für andere Anwendungen local und über Netzwerk bereithalten.
Lösungsansatz:
Zum Testen habe ich ein Object wie folgt erstellt:
Code:
using System;
namespace RemoteObject
{
[Serializable()]
public class counter : MarshalByRefObject
{
int ctr;
public counter()
{
ctr = 0;
Console.WriteLine("Test");
}
public void inc()
{
ctr++;
}
public int GetCtr()
{
return ctr;
}
public string GetHostLocation()
{
return AppDomain.CurrentDomain.FriendlyName;
}
}
}
Code:
using System;
using System.Runtime.Remoting;
using RemoteObject;
namespace server
{
class server
{
public static void Main(string[] args)
{
RemotingConfiguration.Configure("server.exe.config");
Console.WriteLine("Drücken Sie eine Taste um den Server runter zu fahren");
Console.ReadLine();
counter ctr = new counter();
ctr.inc();
ctr.inc();
ctr.inc();
}
}
}
Code:
using System;
using System.Runtime.Remoting;
using RemoteObject;
namespace RemoteClient
{
class MainClass
{
public static void Main(string[] args)
{
RemotingConfiguration.Configure("client.exe.config");
counter ctr = new counter();
Console.WriteLine(ctr.GetCtr());
ctr.inc();
Console.WriteLine(ctr.GetCtr());
}
}
}
Leider ist der Wert in counter.ctr immer 0, wenn der Client das erste mal drauf zugreift, wo liegt mein Denkfehler?
LG D12