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

Windows Communication Foundation .NET Discussion :

Comment démarrer un service wcf?


Sujet :

Windows Communication Foundation .NET

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2010
    Messages : 8
    Points : 11
    Points
    11
    Par défaut Comment démarrer un service wcf?
    bjr,
    j'ai créer une bibliothèque de service WCF dans laquelle j'ai créé un contrat. Dans cette même solution j'ai créé une autre biblio de services WCF contenant le service, puis un hôte et enfin un consomateur pour mon service.
    l'hote et le consommateur sont des projet winform.
    malheureusement je n'arrive pas à démarrer mon service et voici le texte affiché par la boite de dialogue lorsque je démarre ma solution:
    Hôte de Service WCF de Microsoft
    L'assembly cible ne contient aucun type de service.
    Vous devrez peut-être ajuster la politique de sécurité d'accès du Code de cette Assemblée.
    Pour mieux étayer ma demande voici les outils que j'utilise :
    -Visual Studio 2012 Professionnal
    -Framework .Net 3.5
    -VB.NET

    Le code de mon contrat est le suivant:

    Code VB.Net : 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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    '
    Imports System.ServiceModel
    <ServiceContract()> _
    Public Interface IServiceDev3
     
        <OperationContract()> _
        Function GetData(ByVal value As Integer) As String
     
        <OperationContract()> _
        Function GetDataUsingDataContract(ByVal composite As CompositeType) As CompositeType
     
        ' TODO: ajoutez vos opérations de service ici
     
        <OperationContract()> _
        Function EuroToUsDollars(ByVal amount As Decimal) As Decimal
        <OperationContract()> _
        Function UsDollarsToEuros(ByVal amount As Decimal) As Decimal
     
    End Interface
     
    ' Utilisez un contrat de données (comme illustré dans l'exemple ci-dessous) pour ajouter des types composites aux opérations de service.
     
    <DataContract()> _
    Public Class CompositeType
     
        Private boolValueField As Boolean
        Private stringValueField As String
     
        <DataMember()> _
        Public Property BoolValue() As Boolean
            Get
                Return Me.boolValueField
            End Get
            Set(ByVal value As Boolean)
                Me.boolValueField = value
            End Set
        End Property
     
        <DataMember()> _
        Public Property StringValue() As String
            Get
                Return Me.stringValueField
            End Get
            Set(ByVal value As String)
                Me.stringValueField = value
            End Set
        End Property
     
    End Class

    Le code de mon service est le suivant:

    Code VB.Net : 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
    ' REMARQUE*: vous pouvez utiliser la commande Renommer du menu contextuel pour changer le nom de classe "Service1" à la fois dans le code et le fichier de configuration.
    Option Explicit On
    Option Strict On
     
    Imports Contrat3
    Public Class CurrencyService3
        Implements Contrat3.IServiceDev3
     
     
        Public Function EuroToUsDollars1(amount As Decimal) As Decimal Implements IServiceDev3.EuroToUsDollars
            Return amount * CDec(1.3812)
        End Function
     
        Public Function UsDollarsToEuros1(amount As Decimal) As Decimal Implements IServiceDev3.UsDollarsToEuros
            Return amount * CDec(0.724)
        End Function
     
        Public Function GetData(ByVal value As Integer) As String Implements IServiceDev3.GetData
            Return String.Format("You entered: {0}", value)
        End Function
     
        Public Function GetDataUsingDataContract(ByVal composite As Contrat3.CompositeType) As Contrat3.CompositeType Implements IServiceDev3.GetDataUsingDataContract
            If composite Is Nothing Then
                Throw New ArgumentNullException("composite")
            End If
            If composite.BoolValue Then
                composite.StringValue &= "Suffix"
            End If
            Return composite
        End Function
     
     
    End Class


    Le fichier de configuration de mon hote contient les lignes suivantes:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.serviceModel>
        <services>
          <service name="Service3.CurrencyService3">
            <endpoint
            address="http://localhost:8018/CurrencyService3"
            binding="basicHttpBinding"
            contract="Contrat3.IServiceDev3" />
          </service>
        </services>
      </system.serviceModel>
    </configuration>

    Et le fichier de configuration de mon client contient :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.serviceModel>
        <client>
          <endpoint
            address="http://localhost:8018/CurrencyService3"
            binding="basicHttpBinding"
            contract="Contrat3.IServiceDev3"
            name="ConfigurationHttpCurrency" />
        </client>
      </system.serviceModel>
    </configuration>

    ----Pour l'instant j'ai vérifié et revérifié les reférences entre les différents projets de la solution et tout me semble normal: le service reférence le contrat, l'hôte reférence le contrat et le service, le client reférence le contrat.
    j'ai même recherché l'option WCF pour cocher le "Start WCF host when debugging..." mais je ne l'ai pas trouvé.
    Merci d'avance pour votre aide! ca fait plus d'une semaine que j'essaie de percer le mystère de WCF!

  2. #2
    Membre régulier
    Homme Profil pro
    Developpeur
    Inscrit en
    Décembre 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Developpeur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 111
    Points : 79
    Points
    79
    Par défaut WCF et Framework
    Bon moi je sais qu'avec Vs2012 c'est du Framework 4.5 et toi tu me parle du 3.5?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Hlama Voir le message
    Bon moi je sais qu'avec Vs2012 c'est du Framework 4.5 et toi tu me parle du 3.5?
    Hlama,
    Avec VS2012 tu peux cibler n'importe quelle version du Framework et pas uniquement du 3.5.

    floryndas,
    Vérifie que ton service CurrencyService3 est bien dans le namespace Service3.

  4. #4
    Membre régulier
    Homme Profil pro
    Developpeur
    Inscrit en
    Décembre 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Developpeur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 111
    Points : 79
    Points
    79
    Par défaut WCF et herbergeur
    Salut tu utilise quel hergement?
    IIS ou ServiceHost?

  5. #5
    Membre régulier
    Femme Profil pro
    Etudiante en Développement
    Inscrit en
    Avril 2012
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante en Développement
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 106
    Points : 119
    Points
    119
    Par défaut
    On ne peut lancer qu'un seul projet par solution, donc je pense qu'il faut que tu découpes ta solution en deux solutions : une solution qui contiendra la bibliothèque de service et ton web service, et l'autre qui contiendra le client.

    De cette manière tu pourras lancer le web service d'un côté et le client de l'autre.

    Pour démarrer et tester un web service tu peux le faire directement en lancant le debug de ta solution, Visual Studio va lancer un petit serveur de développement en local et t'ouvrir une page Internet.
    Sur cette page, cliques sur le .svc de ton web service et copie l'adresse

    Sur l'autre solution, tu fais clic droit sur le projet de ton client > Ajouter une référence de service : dans la boite de dialogue qui apparait, tu mets l'adresse que tu as copié et OK

  6. #6
    Membre régulier
    Homme Profil pro
    Developpeur
    Inscrit en
    Décembre 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Developpeur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 111
    Points : 79
    Points
    79
    Par défaut Lancer plusieurs projets
    Salut,Aline je pense que avec Visual studio c'est possible de lancer plusieurs projets dans une même solution
    Clique droit sur la solution projet de démarrage puis tu sélectionne tes ptojets

  7. #7
    Membre régulier
    Femme Profil pro
    Etudiante en Développement
    Inscrit en
    Avril 2012
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante en Développement
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 106
    Points : 119
    Points
    119
    Par défaut
    Ah oui exact, au temps pour moi.

    Je trouverais ça tout de même plus propre de séparer les solutions, en plus il y a des chances que ça résoude le problème.

    Citation Envoyé par floryndas Voir le message
    j'ai même recherché l'option WCF pour cocher le "Start WCF host when debugging..." mais je ne l'ai pas trouvé.
    Pour la trouver : clic droit sur le projet de type bibliothèque de service WCF > Propriétés > Onglet "Options WCF" en bas à gauche

    Cet onglet n'apparait pas sur un projet de type application de service WCF

Discussions similaires

  1. Comment démarrer le service tomcat 6 sous vista?
    Par Maren00 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 18/03/2010, 16h57
  2. Comment appeler un service WCF en httpget? par url?
    Par 404error dans le forum ASP.NET
    Réponses: 4
    Dernier message: 03/09/2009, 21h54
  3. Réponses: 3
    Dernier message: 18/06/2009, 20h45
  4. Réponses: 1
    Dernier message: 27/12/2007, 16h37

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