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

Services Web Discussion :

WCF sans le fichier app.config


Sujet :

Services Web

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 5
    Points
    5
    Par défaut WCF sans le fichier app.config
    Bonjour,

    j'ai suivis le tuto suivant afin de créer un service windows WCF: http://msdn.microsoft.com/en-us/library/ff649818.aspx

    Ça marche, mais mon problème, c'est que je voudrait, lorsque j'installe mon service, pouvoir indiquer le port d'écoute de mon serveur.

    J'ai fait le nécessaire pour indiquer le port, il l'enregistre dans une clé de registre que je vais cherché au démarrage du service windows.

    Mon problème est comment modifier l'adresse de base et les endpoint avec cette valeur récupérer dans la base de registre.

    J'ai cherché sur internet comment se passer du app.config, mais mon service wcf ne démarre pas sans celui-ci.

    J'ai essayé ceci: http://msdn.microsoft.com/en-us/library/hh205277.aspx mais System.ServiceModel.ServiceConfiguration n'existe que dans le .net framework 4.5, donc incompatible windows XP...

    Quelqu'un a t'il une solution?

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Sur une appli web en Framework 3.5 je fais quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      BasicHttpBinding binding = new BasicHttpBinding(BindingName);
                    // on crée un nouvel endpoint pour ce service
                    EndpointAddress endpoint = new EndpointAddress(new Uri(adresseWS));
                    using (WebService_Test proxy = new WebService_Test (binding, endpoint))
                    {
    // ici le code
    }
    Dans mon cas j'utilise un binding name mais tu peux t'en passer: http://msdn.microsoft.com/en-us/libr...tpbinding.aspx
    Après tout dépend du type de liaison que tu utilises ça peut être autre chose que le BasicHttpBinding.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    Sur une appli web en Framework 3.5 je fais quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      BasicHttpBinding binding = new BasicHttpBinding(BindingName);
                    // on crée un nouvel endpoint pour ce service
                    EndpointAddress endpoint = new EndpointAddress(new Uri(adresseWS));
                    using (WebService_Test proxy = new WebService_Test (binding, endpoint))
                    {
    // ici le code
    }
    Dans mon cas j'utilise un binding name mais tu peux t'en passer: http://msdn.microsoft.com/en-us/libr...tpbinding.aspx
    Après tout dépend du type de liaison que tu utilises ça peut être autre chose que le BasicHttpBinding.
    Merci de ta réponse. J'ai fait quelque chose dans le genre, que j'ai mis dans le "onstart" de mon service windows, mais ca ne fonctionne toujours pas:
    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
    Type TypeServWCF = typeof(ServiceWCF);
                Type TypeServIWCF = typeof(IServiceWCF);
                using (myServiceHost = new ServiceHost(TypeServWCF, new Uri(baseAddress)))
                    {
                        // Check to see if the service host already has a ServiceMetadataBehavior
                        ServiceMetadataBehavior smb = myServiceHost.Description.Behaviors.Find<ServiceMetadataBehavior>();
                        // If not, add one
                        if (smb == null)
                            smb = new ServiceMetadataBehavior();
                        smb.HttpGetEnabled = false;
                        smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
                        myServiceHost.Description.Name = "ComputerSpecs_Server_Bibli_WCF.ServiceWCF";
                        myServiceHost.Description.Behaviors.Add(smb);
                        myServiceHost.AddServiceEndpoint(TypeServWCF, new NetTcpBinding(), "");
                        myServiceHost.AddServiceEndpoint(ServiceMetadataBehavior.MexContractName, MetadataExchangeBindings.CreateMexTcpBinding(), "mex");
                        myServiceHost.Open();
                    }
    Je pense que ce n'est pas dans le service windows que je doit écrire ça, mais dans le service WCF. Problème, je ne sais pas où...

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    As-tu une erreur ? Que se passe-t-il quand tu fais ton service.open ?

    Edit: j'ai trouvé un exemple à cette adresse : http://geekswithblogs.net/martinsj/a...ion-files.aspx

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    As-tu une erreur ? Que se passe-t-il quand tu fais ton service.open ?

    Edit: j'ai trouvé un exemple à cette adresse : http://geekswithblogs.net/martinsj/a...ion-files.aspx
    Dans visual studio, si j'ai le projet de service windows comme projet par defaut et que je lance un debug, ça se lance et s'arrête aussitôt, programme terminé, pas d'erreur(j'ai rajouté dans le main un if debug pour passer dans le onstart, sinon il refuse de débugger car c'est un service windows).

    Si j'ai le projet de service WCF comme programme par default, sachant que j'ai viré le app.config (puisque c'est le but), il me met un message d'erreur, mais ce n'est pas visual studio qui m'affiche ce message, c'est l'hôte de service wcf qui me donne l'utilisation de "wcfsvchost.exe".

    Si je remet le app.config correctement configuré, le wcf se lance bien et je peu le détecter par mon client.

    Si je génère la solution et installe mon service windows, en mode réel donc, il se lance sans faire d'erreur, mais mon client ne le détecte pas.

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Tu peux pas lancer un service windows directement depuis visual studio, un autre moyen de tester ton service serait de l'héberger dans une appli winforms par exemple.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    Tu peux pas lancer un service windows directement depuis visual studio, un autre moyen de tester ton service serait de l'héberger dans une appli winforms par exemple.
    Oui je sais que c'est pas possible, mais à part ca, je ne savait pas comment le testé, mis à part de l'installer réellement, ce que j'ai fait, et de cet manière le service ne plante pas, et démarre et reste démarrer, mais derrière je ne sais pas ce qu'il à fait...

    Merci de l'info, je vais testé, mais je ne sais pas trop comment....

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par yohan_g Voir le message
    Oui je sais que c'est pas possible, mais à part ca, je ne savait pas comment le testé, mis à part de l'installer réellement, ce que j'ai fait, et de cet manière le service ne plante pas, et démarre et reste démarrer, mais derrière je ne sais pas ce qu'il à fait...

    Merci de l'info, je vais testé, mais je ne sais pas trop comment....
    Je l'ai fait, ct simple, suffisait de créer un projet windows forms et copier/coller ce que j'ai fait dans le "onstart" du projet de service windows, en rajouter les using qui vont bien.

    Parcontre, pas d'erreurs ....

  9. #9
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Ton service démarre bien donc ? C'est juste que tu n'arrives pas à t'y connecter ? Tu peux voire s'il est disponible en y accédant directement par ton navigateur à l'adresse à laquelle tu l'héberges.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    Ton service démarre bien donc ? C'est juste que tu n'arrives pas à t'y connecter ? Tu peux voire s'il est disponible en y accédant directement par ton navigateur à l'adresse à laquelle tu l'héberges.
    je ne pense pas que ça marche, c'est du net.tcp://localhost:8560/

    et dans le client, si j'ajoute une référence de service avec cette adresse, il ne trouve rien.

    mais je test ce soir au cas où, la je ne suis pas chez moi. merci

  11. #11
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    ah c'est du tcp, tu as testé en local ou depuis une autre machine ? (des fois que ça vienne du pare-feu)

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    ah c'est du tcp, tu as testé en local ou depuis une autre machine ? (des fois que ça vienne du pare-feu)
    J'ai désactivé parefeu, et même sans ça, ça fonctionne si je met le app.config.

Discussions similaires

  1. Fichier App.Config d'une bibliothèque de classes
    Par Poussy-Puce dans le forum C#
    Réponses: 2
    Dernier message: 25/04/2008, 20h19
  2. Fichier app.config et mises à jour ClickOnce.
    Par Shypster dans le forum C#
    Réponses: 13
    Dernier message: 18/03/2008, 15h20
  3. Réponses: 2
    Dernier message: 04/06/2006, 18h19
  4. Réponses: 9
    Dernier message: 04/05/2006, 17h33
  5. [VB.Net] Fichier app.config
    Par tomnie dans le forum Windows Forms
    Réponses: 24
    Dernier message: 28/03/2006, 10h33

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