IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Net Remoting et Evenements


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Par défaut Net Remoting et Evenements
    Bonjour,
    je cherche comment faire pour lever un événement sur le serveur auquel serait abonné mon client, cela en Net Remoting.

    Je m'explique j'ai mon serveur qui fait des traitements et une fois que cela est terminé, je voudrais avertir mon client que c'est fait. Attention mon client n'a rien fait dans le processus, il est juste la pour faire un affichage.
    J'ai un 2° serveur TCP en TcpListener qui recoit des messages de terminaux mobiles sous Compact Framework. C'est à partir d'eux que des traitements sont réalisés.

    J'ai trouvé des exemples sur le net mais je n'y pige rien du tout.
    Le service est un WellKnowObject singleton.

    Voici les bouts de code
    Serveur:
    Code : 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
    29
    30
    31
    32
    33
    private static void RunChannelAdmin(){
                try
                {
                    BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();
                    BinaryClientFormatterSinkProvider clientProvider = new BinaryClientFormatterSinkProvider();
                    provider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
     
                    IDictionary prop = new Hashtable();
                   // prop["bindTo"] = System.Net.Dns.GetHostName();//"192.168.0.12";
                    prop["port"] = 14000;
     
                    TcpChannel channel = new TcpChannel(prop, clientProvider, provider);
                   // TcpChannel channel = new TcpChannel(14000);
                    // Enregistrement du canal
                    ChannelServices.RegisterChannel(channel, true);
                    // Démarrage de l'écoute en exposant l'objet en Singleton
                    RemotingConfiguration.RegisterWellKnownServiceType(
                        typeof(ReceptionLivraison.BLL.RemoteBuisnessReception),
                        "RemoteBuisnessReception",
                        WellKnownObjectMode.Singleton);
                    System.Console.WriteLine("Démarré");
                    FichierLog.Instance.Write("Le serveur d'administration a démarré avec succés");
                    TimerCallback timerDelegate = new TimerCallback(ecrireCompteur);
                    Timer t = new Timer(timerDelegate,new Compteur(),0,1000);
                    while(true){}
                }
                catch
                {
                    FichierLog.Instance.Write("Erreur lors du démarrage du serveur d'administration");
                }finally{
                    System.Console.WriteLine("Arreter");
                }
            }
    le client:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public void StartRemotingClient(Object sender, EventArgs e) {
                try {
                    if (ChannelServices.RegisteredChannels.Length > 0)
                        ChannelServices.UnregisterChannel(ChannelServices.RegisteredChannels[0]);
                    TcpChannel channel = new TcpChannel(0);
                    ChannelServices.RegisterChannel(channel, true);
                    _RemoteBuisness = (IRemoteBuisnessReception)Activator.GetObject(typeof(IRemoteBuisnessReception),
                        "tcp://" + Parametres.Instance.ListeParam.IPServeur + ":14000/RemoteBuisnessReception");
                    String GuidServeur = _RemoteBuisness.getServeurGuid();
                } catch {
                    throw new RemoteClientException();
                }
            }
    Quelqu'un pourrait m'aider?

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 449
    Par défaut
    Pour être sûr, c'est quoi le rapport avec ASP.NET ?

    Sinon, le problème présenté semble être un simple subscriber/consumer, non ?

Discussions similaires

  1. .Net Remoting Client/Serveur Evenement Winform
    Par kisscool14 dans le forum C#
    Réponses: 2
    Dernier message: 22/05/2009, 16h38
  2. [.NET Remoting] Comment transferer un Dataset ?
    Par B.AF dans le forum Framework .NET
    Réponses: 2
    Dernier message: 30/12/2005, 22h34
  3. [PictureBox][VB.net ]Capter l'evenement MouseUp
    Par zitoun dans le forum VB.NET
    Réponses: 2
    Dernier message: 30/12/2005, 16h48
  4. [VB.Net][2.0]Événement du ButtonField dans un GridView
    Par steelidol dans le forum ASP.NET
    Réponses: 3
    Dernier message: 05/10/2005, 19h23
  5. [VB.NET] Appeler un évènement serveur par JS...
    Par Rami dans le forum ASP.NET
    Réponses: 5
    Dernier message: 17/05/2004, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo