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

VB.NET Discussion :

Windows Service afficher MessageBox via WCF


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Points : 58
    Points
    58
    Par défaut Windows Service afficher MessageBox via WCF
    Bonjour,

    J'ai un service WINDOWS, et je veux afficher un messagebox, cependant, je sais très bien que les services WINDOWS sont incapables de faire cela.

    Doit-je créer un service WCF qui intéragit avec le service WINDOWS ?

    Ou dois-je transformer mon service WINDOWS ? (ce que je veux éviter de faire)...

    Je vais suivre un tuto, mais j'ai besoin d'éclaircissement avant de commencer... C'est assez dur à décortiquer, j'ai besoin d'éclaircissements.

    PS : autre question :

    Le message s'affichera-t-il sur le navigateur internet? Je m'en passerais bien (comme WCF est un Web service)... Si possible je voudrais un MsgBox classique.

    Merci !

  2. #2
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    J'ai un service WINDOWS, et je veux afficher un messagebox
    -> Réponse :
    cependant, je sais très bien que les services WINDOWS sont incapables de faire cela.
    Donc soit tu fais un programmes Windows Form, qui aura une partie "service", (en créant un thread à part par exemple)
    Auquel cas il faudra que ton programme soit en permanence ouvert si tu veux qu'il fonctionne comme un service.

    Sinon, tu te crées une petite application Windows Form, qui va communiquer avec ton service (via une base de données, MSMQ, par exemple), et cette application pourra interagir avec l'utilisateur. C'est du monitoring de service.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    un service ne peut en effet pas afficher de message
    le but d'un service est d'avoir un programme unique toujours en exécution, seul ceci peut déterminer si un service windows t'es nécessaire ou pas
    si tu veux afficher un message il faut faire une autre appli
    ce qui est courant, c'est une appli (type windows forms ou wpf) qui dialogue avec le service et qui se lance à l'ouverture d'une session windows
    ce programme peut donc être à instance multiple si plusieurs sessions sont ouvertes, ceci ne pose pas de problème
    le service pourra alors prévenir les instances d'appli d'afficher un message

    pour la communication il y a plein de méthodes, sockets, wcf, cannaux nommés etc...
    les cannaux nommés sont peut etre plus simples

    et pour info web service n'est en rien lié au web
    un web service est une service de communication de données, en général sur tcp/ip, l'implémentation du code y est spécifique mais au final ca revient au même que d'envoyer des octets sur des sockets entre 2 programmes
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre du Club
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    Merci pour ta réponse Mactwist.

    J'utilisais déjà un windows form communiquant avec le service via canal nommé (pipe). Cependant, le pipe pouvait mal se fermer j'avais eu des complications. Du coup j'avais beau rouvrir le form, rien ne s'affichait (celà était rare, mais possible).

    Je voulais tout simplement éviter cela.

    Pour MSMQ, celà m'a l'air compliqué à mettre en place, en effet, l'utilisateur final n'a pas accès à la barre des tâches, donc ne pourra installer MSMQ.

    Mais c'était une proposition intéressante. Cela aurait permis aux deux programmes d'être indépendant l'un de l'autre, et de mettre les messages en file d'attente.

    Y'a-t-il moyen d'activer MSMQ sans passer par Activer ou désactiver des fonctionnalités windows ????

    Merci man.

    Edit : Merci pour les explications Pol!

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Afficher une notification dans la barre des taches en utilisant un WPF, un WCF hébergé dans un service windows
    Bonjour;
    J'ai une question : J'aimerai afficher une notification dans la barre des taches au démarrage de mon service windows.
    Pour cela j'ai utilisé un WCF entre mon service Windows et mon WPF. Mon service Windows héberge mon wcf et le consomme aussi . J'ai ajouté un service de référence dans mon service windows. l'installation du service à réussi avec succès.
    Est-il possible qu'un service windows heberge et consomme lui meme un WCF ? si oui guidez moi svp.

    Voici le code de la méthode OnStart de mon service windows :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
           protected override void OnStart(string[] args)
            {
                if (host != null)
                {
                    host.Close();
                }
                host = new ServiceHost(typeof(AtosWCFService.Service1));
                host.Open(); 
               MyServiceReference.Service1Client client = new MyServiceReference.Service1Client();
               client.Open();
               client.TestWCF();
     
            }
    Le code la méthode TestWCF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
         public class Service1 : IService1
        {
            public void TestWCF()
            {
                Notification notif = new Notification();
                notif.ShowNotification();
            }
        }
    Et le code ma classe Notification dans mon WPF :
    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
    namespace MyWPFApp
    {
        public class Notification
        {
            public void ShowNotification()
            {
                NotifyIcon notifyIcon;
                notifyIcon = new NotifyIcon();
                notifyIcon.Icon = SystemIcons.Information;
                notifyIcon.BalloonTipTitle = "Atos !!!";
                notifyIcon.BalloonTipText = "Atos Notification Center test";
                notifyIcon.BalloonTipIcon = ToolTipIcon.Info;
                notifyIcon.Visible = true;
                notifyIcon.ShowBalloonTip(30000);
            }
        }
    }
    Votre aide me sera très précieuse !! Merci

Discussions similaires

  1. Image via WCF Data Service
    Par sebagr dans le forum Silverlight
    Réponses: 1
    Dernier message: 06/07/2011, 15h54
  2. Réponses: 1
    Dernier message: 08/03/2011, 17h13
  3. Réponses: 9
    Dernier message: 12/01/2011, 18h38
  4. Silverlight WCF et windows service
    Par psion2 dans le forum Silverlight
    Réponses: 5
    Dernier message: 27/04/2009, 20h43
  5. Windows Services(& WCF)
    Par Invité dans le forum C#
    Réponses: 3
    Dernier message: 15/04/2009, 14h01

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