Bonjour à tous,
Avant toutes choses, comme le mentionne cet intitulé, je suis un grand débutant dans l'utilisation des Windows Comunication Fondation Microsoft, c'est pourquoi, il est possible que j'utilise des termes inappropriés et/ou que je comprenne parfois les explications à l'envers. C'est la raison pour laquelle je requiers votre indulgence. Merci d'avance !
Mon objectif : Communication d'un système android avec un web service microsoft via le format de données JSON.
Mon problème : Impossible de configurer mon web service pour qu'il puisse recevoir du JSON en entrée ! Lors de sa configuration je reçoit le message suivant :
Mon avis : Le problème vient de WCF : Cette erreur s'affiche lorsque je tente de mettre en ligne le service. J'ai remarqué que l'erreur à l'exécution disparaissait lorsque je n'utilisais plus le serviceBehavior personnalisé, mais, malheureusement, cette erreur réapparaissait lorsque je tentais de communiquer avec via JSON (provenant d'un système android ou non).(415) Cannot process the message because the content type 'application/soap+xml; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'.
Pour information, j'utilise une vrai instance de IIS (et non pas l'instance de test générée par Visual Studio).
Voici ce qui compose les différents fichiers (les parties qui intéressent bien entendu) :
Web.config
ITestWebService.cs
Code : 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 <services> <service name="TestWebService" behaviorConfiguration="TestWebServiceBehaviors" > <endpoint address="TestWebService" behaviorConfiguration="webBehavior" binding="basicHttpBinding" contract="ITestWebService" /> <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" /> </service> </services> <behaviors> <serviceBehaviors> <behavior name="TestWebServiceBehaviors"> <!-- 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="false" /> </behavior> </serviceBehaviors> <endpointBehaviors> <behavior name="webBehavior"> <webHttp /> </behavior> </endpointBehaviors> </behaviors> <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> </system.serviceModel> <system.webServer> <modules runAllManagedModulesForAllRequests="true" /> </system.webServer>
Bien évidemment je dois sûrement avoir fait une boulette quelque part...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 [ServiceContract] public interface ITestWebService { [OperationContract] [WebInvoke( Method = "POST", UriTemplate = "SaveTest", BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)] int SaveTest(TestDatas testDatas); }
Ca fait maintenant deux jours que je suis sur ce problème, j'ai consulté plusieurs ressources, appliqué plusieurs conseils mais en vain...
Si vous désirez davantage d'infos, n'hésitez pas à revenir vers moi.
Je vous remercie de votre aide !
Partager