WCF - Erreur avec la liaison
The endpoint at 'http://localhost:8731/Design_Time_Addresses/WCF/WCFService/' does not have a Binding with the None MessageVersion. 'System.ServiceModel.Description.WebHttpBehavior' is only intended for use with WebHttpBinding or similar bindings.
C'est l'erreur que j'obtiens quand j'essaie de le démarrer mon service WCF. J'ai lu tous les post ici sur la liaison des erreurs, mais ils sont tous un peu différents et je ne peux pas le comprendre. Voici l'une de mes applications.config:
<system.serviceModel>
<services>
<service name="WCF.WCFService">
<endpoint address="" binding="wsHttpBinding" contract="WCF.IWCFService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint
address="mex"
binding="mexHttpBinding"
bindingConfiguration=""
contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8731/Design_Time_Addresses/WCF/WCFService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior>
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
Je suis l'hébergement de mon service WCF dans un service windows si cela fait une différence. MON objectif Final est d'utiliser une application winforms pour consommer le service WCF. Quand je lance juste le service WCF dans VS, cela fonctionne, mais quand j'ajoute de la config pour le service windows app.config et essayez de démarrer le service WCF avec elle, j'obtiens l'erreur. Toute aide serait super.
Vous devez vous connecter pour publier un commentaire.
L'exception vous informe que votre comportement de point de terminaison n'est pas compatible avec votre liaison (wsHttpBinding).
Supprimer les <webHttp /> à partir du point de terminaison du comportement ou de l'utilisation WebHttpBinding au lieu de wsHttpBinding.
Utiliser le WebHttpBinding si vous souhaitez configurer les paramètres utilisés pour les services web qui utilisent des requêtes HTTP au lieu de messages SOAP. Le WebHttpBehavior (<webHttp />) permet à ce modèle de programmation lorsqu'il est utilisé avec WebHttpBinding (ou compatible).
Et c'est ça le problème. Ce comportement n'est pas compatbile avec votre choisi de liaison (wsHttpBinding).
Vous devez également le nom de votre configuration des ordinateurs d'extrémité:
Et utiliser le nom et le lien vers le service de terminaison:
Cela permet de s'assurer que votre service est le point de terminaison utilise le comportement spécifié par le WebHttp comportement de point de terminaison (webHttp). Maintenant vous n'avez pas de nom, de sorte que le mex extrémité obtient également ce comportement. Ce n'est pas nécessaire. Utilisez simplement mexHttpBinding pour le mex point de terminaison, mais n'ont pas de lien pour le même comportement que le service.