[2.0][.Net Remoting]Comment gérer la connection/déconnection d'une applicat. cliente?
Bonjour,
j'ai crée une application distribuée qui utilise .Net Remoting.
L'application cliente se connecte correctement à l'application serveur.
J'utilise un fichier de configuration.
Code:
1 2 3 4 5 6
|
// Initialisation de la configuration du client
RemotingConfiguration.Configure("Client.config", false);
// Initialisation de l'objet de fabrication des objets distants
m_RemoteFabrique = (ITraitementFabriqueService)RemoteInterfaceInitializer.GetObject(typeof(ITraitementFabriqueService)); |
RemoteInterfaceInitializer est :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
public class RemoteInterfaceInitializer
{
private static bool bInit;
// Table d'association:interfaces/services distants WKO
private static IDictionary dicoTypes;
public static Object GetObject(Type type)
{
if (!bInit)
InitDicoTypes();
WellKnownClientTypeEntry entry = (WellKnownClientTypeEntry)dicoTypes[type];
return Activator.GetObject(entry.ObjectType, entry.ObjectUrl);
}
private static void InitDicoTypes()
{
bInit = true;
dicoTypes = new Hashtable();
foreach (WellKnownClientTypeEntry entry in RemotingConfiguration.GetRegisteredWellKnownClientTypes())
{
dicoTypes.Add(entry.ObjectType, entry);
}
}
} |
Comment puis-je gérer la déconnection du client au serveur ?
De même côté serveur, j'aimerais que l'application serveur soit un service Windows.
Le serveur est initialisé de la façon suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
/// <summary>
/// Démarrage du serveur
/// </summary>
public void Start()
{
// Configuration du serveur d'accès distant
RemotingConfiguration.Configure("Hote.config", false);
log.Info("Serveur de gestion démarré.");
// Indique que le serveur est démarré
m_Started = true;
}
public void Stop()
{
// Arrêter le serveur
} |
Comment puis-je interrompre les connections du côté serveur (Que mettre dans la méthode Stop() ?)
Comment le client peut-il être notifié d'un arrêt du serveur ?
Dans le cas où la connection n'est plus valide, il faudrait que mon client se reconnecte sur le serveur. Comment gérer les reconnection d'un client au serveur ?
Merci d'avance pour votre aide.