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

C# Discussion :

Windows Services(& WCF)


Sujet :

C#

  1. #1
    Invité
    Invité(e)
    Par défaut Windows Services(& WCF)
    Bonjour a tous,

    Je suis en train de me pencher sur le developpent d'un service Windows offrant un "dialogue" avec d'autres applis en passant par SOAP. Je me suis donc logiquement (ou pas?) tourne vers WCF, mais je rencontre quelques soucis.
    Apres avoir cree un projet de type Service dans Visual Studio, j'ai code le necessaire pour faire fonctionner WCF (un fichier Class Library qui contient interface & class pour WCF, un fichier app.config, et le code necessaire au WCF Host).
    J'ai pu aussi ajouter un installer (en suivant ceci http://msdn.microsoft.com/en-us/library/zt39148a.aspx ), et installer mon service. Cependant quand je le demarre, j'obtiens le message d'erreur suivant:

    "Le service [x] sur Ordinateur local a demarre et s'est ensuite arrete. Certains services s'arretent automatiquement s'ils ne sont pas utilises par d'autres services ou programmes".

    Pourquoi ce message ? O_o

    Code du service
    Program.cs
    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
    namespace SomeSpace
    {
        static class Program
        {
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            static void Main()
            {
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[] 
    			{ 
    				new TestService() 
    			};
                ServiceBase.Run(ServicesToRun);
            }
        }
    }
    TestService.cs
    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
    34
    namespace SomeSpace
    {
        public partial class TestService : ServiceBase
        {
            private ServiceHost host;
     
            public TestService()
            {
                InitializeComponent();
                this.ServiceName = "TestService";
            }
     
            protected override void OnStart(string[] args)
            {
                host = new ServiceHost(typeof(WCFTest.SayHello));
     
                try
                {
                    host.Open();
                }
                catch (Exception ex)
                {
                }
            }
     
            protected override void OnStop()
            {
                if (host.State == CommunicationState.Opened || host.State == CommunicationState.Faulted || host.State == CommunicationState.Opening)
                {
                    host.Close();
                }
            }
        }
    }
    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 16
    Par défaut
    Bonjour,

    Si tu veux que ton service continue après la méthode OnStart tu dois lancer un thread(au moins) à partir de cette méthode.

    Sinon il s'arrête immédiatement. http://emerica.developpez.com/csharp/threads/

    Flyyd

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Flyyd Voir le message
    Bonjour,

    Si tu veux que ton service continue après la méthode OnStart tu dois lancer un thread(au moins) à partir de cette méthode.
    Absolument pas !!!!

    Ce qu'il manque ici c'est éventuellement le Open pour passer à l'écoute sur son service.

    L'arrêt de son service vient à mon avis d'un problème de configuration de son service WCF.

    Accessoirement, le positionnement du ServiceName dans le constructeur de la classe dérivée de ServiceBase ne sert à rien.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Deja, merci pour les reponses

    Ce qu'il manque ici c'est éventuellement le Open pour passer à l'écoute sur son service.
    Non non, il y a bien un Open

    Ensuite effectivement le souci du service etait une malencontrueuse majuscule sur le binding WCF (NetTcpBinding au lieu de netTcpBinding).
    Je peux fermer ce poste et en ouvrir un nouveau

    Re-merci donc !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Windows Service afficher MessageBox via WCF
    Par kurt225 dans le forum VB.NET
    Réponses: 4
    Dernier message: 05/01/2016, 10h45
  2. Réponses: 9
    Dernier message: 12/01/2011, 18h38
  3. Silverlight WCF et windows service
    Par psion2 dans le forum Silverlight
    Réponses: 5
    Dernier message: 27/04/2009, 20h43
  4. Windows Service Demarre et Arrête sans rien faire
    Par Bobafett dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/02/2007, 17h32
  5. [C#] [Windows service] Rendre Word Visible ?
    Par chris92 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 26/07/2004, 17h45

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