WCF et JSON de liaison
Je suis en train de créer un service wcf qui renvoie du json. J'ai quelques problèmes avec mon fichier de config et j'ai aussi ne sais pas comment le tester.
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="false" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<services>
<service name="ContactLibraryJSON.ContactLibrary">
<endpoint address="" binding="webHttpBinding" bindingConfiguration="JSONEndpointBehavior"
contract="ContactLibraryJSON.IContactServiceJSON" />
<endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://192.168.1.31/ContactLibraryJSON" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="JSONEndpointBehavior">
<webHttp/>
</behavior>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
Je reçois toujours
"Impossible d'ajouter le comportement de l'extension webhttp le comportement de service
les noms deJSONEndpointBehavior
parce que le comportement sous-jacent de type t
ne pas mettre en œuvre laIServiceBehaviorInterface
"
Contact est défini comme :
[DataContract(Name="Contact")]
public class Contact
{
[DataMember(Name="FirstName")]
public string firstName=null;
[DataMember(Name="LastName")]
public string lastName=null;
[DataMember(Name="Email")]
public string email=null;
[DataMember(Name = "Age")]
public int age = 0;
[DataMember(Name = "Street")]
public string street=null;
[DataMember(Name = "City")]
public string city=null;
[DataMember(Name = "Country")]
public string country=null;
}
IContactService est défini comme :
[ServiceContract]
public interface IContactServiceJSON
{
[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json, UriTemplate = "")]
Contact GetContact();
}
La mise en œuvre de GetContact
:
public Contact GetContact()
{
return new Contact()
{
firstName = "primulNume",
lastName = "alDoileaNume",
age = 33,
city = "Cluj",
country = "Romania",
email = "[email protected]",
street = "Bizusa 8"
};
}
Mon service s'exécute sur un autre ordinateur de mon réseau local. Adresse de Base est comme: http://192.168.1.xxx/ContactLibraryService. ContactLibraryService
est hébergé par IIS et est converti à une application.
OriginalL'auteur sebastian.roibu | 2012-03-23
Vous devez vous connecter pour publier un commentaire.
Il n'est pas bon que vous avez un Contrat de Service de
IContact
et des Données de ContactContact
. Renommer Contrat de Service commeIContactService
.Au cours de Débogage du temps (il semble que vous avez WCF bibliothèque), adresse de service sera http://localhost:8732/contact
'JSONEndpointBehavior" devrait être pas Service mais le comportement de point de Terminaison
OriginalL'auteur paramosh
Vous devez ajouter le
<webHttp/>
à la liste des extrémité comportements. Aussi, le point de terminaison doit utiliser lewebHttpBinding
. Et enfin, pour répondre àGET
requêtes HTTP, vous devez utiliser leWebGet
attribut (au lieu deWebInvoke(Method="GET")
.Et le contrat de service:
Vous n'avez pas toujours un comportement de point de terminaison.
je vais modifier le service, le lundi parce que c'est une tâche de travail. je vais poster à nouveau si j'ai réussi ou le nouveau message d'erreur que je reçois.
OriginalL'auteur carlosfigueira
Je pense que vous avez manqué liaisons ici, vous devez ajouter webHttpBinding et basichttpbing sous l'onglet liaisons dans le système.serviceModel tag.
OriginalL'auteur Nilesh Rathod