.Net-Remoting: Überprüfung ob Serverprozess läuft



  • Hallo,

    wie kann ich clientseitig überpüfen, ob eine bestimmte Klasse
    serverseitig "remoted" wurde?

    Bsp:

    Server:
    ...
    TestKlasse aTestKlasse = new TestKlasse();
    RemotingServices.Marshal(aTestKlasse, "Testklasse.rem");

    Client:
    ...
    Hier möchte ich überprüfen, ob "Testklasse.rem" zugreifbar ist, also nicht nur ein Proxi erstellt werden kann
    ...

    Gruß und ein Dankeschön
    SlEasy



  • Hi,

    einfach im Try-catch-Block drauf zugreifen:

    private bool ConnectToServer(out IServer Server)
    {
        Server=null;
        try
        {
         Server=Activator.GetObject(typeof(IServer),"Server.tcp");
         // Server ist nun ein Proxy-Object. Die Verbindung zum Server ist aber noch nicht hergestellt
         // hergestellt wird die Verbindung erst bein ersten Zugriff auf das Objekt
         // dazu kann man eine Property im Server einbauen, welches einfach true zurückgibt: ich nenns mal "Online"
         return Server.Online; // wenn er nicht online ist, gibs hier ne Exception und diese Methode gibt false zurück. 
       // im Property "Online" kann man dann noch Zustände auf dem Server prüfen.
       // Beispielsweise könnte ein Server von einem anderen Server abhängigsein. 
       // In dieser Eigenschaft könnte man dann prüfen,
       // ob eine Verbindung hergestellt werden kann.
    
        }
        catch(Exception E)
       {
         Console.WriteLine(E.Message);
         Server=null;
         return false;
       }
    }
    

    ist noch nicht perfekt, aber schon ein brauchbarer Ansatz.


Anmelden zum Antworten