Comment configurer basicHttpBinding pour le service WCF
J'ai un service WCF que je suis en train de travailler avec wcf, vieux soap et xml en clair. Le service est appelé TestService.svc et de la configuration ressemble à ceci:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="TestServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="poxBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="TestServiceBehavior" name="TestService">
<endpoint address="" binding="wsHttpBinding" contract="ITestService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<endpoint address="soap" binding="basicHttpBinding" contract="ITestService"/>
<endpoint address="xml" binding="webHttpBinding" behaviorConfiguration="poxBehavior" contract="ITestService"/>
</service>
</services>
</system.serviceModel>
J'ai eu ce code à partir de cette autre question:
REST /SOAP points de terminaison pour un service WCF
Maintenant, le XML webHttpBinding semble bien fonctionner, mais les wsHttpBinding et basicHttpBinding ne fonctionne pas très bien.
Je peux navigateur pour le service de l'aide:
http://localhost:8295/WCFTest/TestService.svc
Je peux également utiliser ce système pour ajouter une référence de service dans un asp.net projet de site web et de tenter de consommer le service, mais quand j'ai créer le client:
TestService.TestServiceClient mytest = new TestService.TestServiceClient();
Il dit à spécifier un point de terminaison en raison de plusieurs points de terminaison. Je suppose en raison d'avoir à la fois wsHttp et basicHttp? Comment puis-je spécifier le point de terminaison ici?
Ensuite, j'ai essayer de consommer le basicHttpBinding point de terminaison par l'ajout d'une Référence Web (pas de service de référence) pour une .net site web 2.0. À ce point, je ne suis pas capable d'ajouter la référence et recevez une erreur 400.
Prochain donc j'ai supprimer le wsHttp de liaison et suis en mesure d'ajouter la référence web et utiliser le service via un .net 2.0 client.
Comment puis-je le configurer de sorte que je peux utiliser wsHttpBinding pour les clients qui peuvent consommer normal des services WCF, basicHttpBinding pour les clients qui ne peuvent consommer plus non-WCF requêtes SOAP et ont encore webHttpBinding disponible pour les clients qui veulent consommer de la plaine xml?
OriginalL'auteur dtc | 2010-06-30
Vous devez vous connecter pour publier un commentaire.
La personne qui a posté ce lien (http://www.codemeit.com/wcf/wcf-restful-pox-json-and-soap-coexist.html) semble être correcte. Mais depuis que cette question reste sans réponse, je vais développer un peu.
Si vous n'avez pas essayé, je vais en parler d'abord que nulle part dans votre configuration ne vous spécifiez une adresse réelle du service client pour vous connecter à.
Votre premier point de terminaison a
Sur la base des documents sur le site web MSDN (trouvé ici) et le lien ci-dessus, il semble qu'il vous manque dans votre configuration de service
Ajoutant que ferait la configuration de votre service ressembler à ceci
Ajoutant que l'article va fournir l'adresse à utiliser, tandis que les paramètres propres à la va ensuite utiliser les adresses par rapport à la base de l'adresse fournie.
OriginalL'auteur Justin Kabonick