Comment démarrer un service WCF(VB.NET)?

Fermé
floryndas Messages postés 2 Date d'inscription lundi 29 août 2011 Statut Membre Dernière intervention 31 juillet 2013 - 31 juil. 2013 à 13:49
Bonjour,

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:

'
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:

' 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:

<?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 :

<?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!