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 c# : Sélectionner tout - Visualiser dans une fenêtre à part
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 c# : Sélectionner tout - Visualiser dans une fenêtre à part
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 c# : Sélectionner tout - Visualiser dans une fenêtre à part
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.