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!