IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Communication Foundation .NET Discussion :

[WCF] Communication entre système Android et WCF via JSON [Débutant]


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 36
    Par défaut [WCF] Communication entre système Android et WCF via JSON
    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 :
    (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'.
    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).
    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
    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>
    ITestWebService.cs
    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);
        }
    Bien évidemment je dois sûrement avoir fait une boulette quelque part...
    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 !

  2. #2
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 36
    Par défaut
    Ok les gars, problème résolu.
    Bon ce que j'ai fait : j'ai glané sur le net jusqu'à trouver un projet téléchargeable correspondant au mien.
    Du coup je vous le montre mais malheureusement, la raison de l'erreur, je ne la connait pas vraiment (il y a pas mal de différences et je n'ai pas le temps de les étudier malheureusement...).

    Voici le Web.config :
    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
    39
    40
    41
    42
    43
    44
    45
    46
      <system.serviceModel>
     
        <bindings>
          <webHttpBinding>
            <binding name="StreamedRequestWebBinding" bypassProxyOnLocal="true" useDefaultWebProxy="false"
                     hostNameComparisonMode="WeakWildcard" sendTimeout="10:15:00" openTimeout="10:15:00" receiveTimeout="10:15:00"
                     maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" maxBufferPoolSize="2147483647"
                     transferMode="StreamedRequest">
              <readerQuotas maxArrayLength="2147483647" maxStringContentLength="2147483647" />
            </binding>
          </webHttpBinding>
        </bindings>
     
        <services>
          <service name="TestWebService.TestWebService" behaviorConfiguration="ServiceBehaviour">
            <endpoint address="" binding="webHttpBinding" bindingConfiguration="StreamedRequestWebBinding"
                      contract="TestWebService.ITestWebService" behaviorConfiguration="web"></endpoint>
          </service>
     
        </services>
     
        <behaviors>
     
          <serviceBehaviors>
            <behavior name="ServiceBehaviour">
              <serviceMetadata httpGetEnabled="true" />
              <serviceDebug includeExceptionDetailInFaults="false" />
            </behavior>
          </serviceBehaviors>
     
          <endpointBehaviors>
     
            <behavior name="web">
              <webHttp />
            </behavior>
     
          </endpointBehaviors>
     
        </behaviors>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
     
     
      </system.serviceModel>
      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />
      </system.webServer>
    Le ITestWebService.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
         [ServiceContract]
        public interface ITestWebService
        {
       [OperationContract]
            [WebInvoke(
            Method = "POST",
            UriTemplate = "/SaveTest",
            ResponseFormat = WebMessageFormat.Json,
            RequestFormat = WebMessageFormat.Json)]
            int SaveTest(TestDatas testDatas);
       }
    Allez, @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. communication entre M340 (module RTU NOR200h) via GSM
    Par xox-vd dans le forum Automation
    Réponses: 1
    Dernier message: 29/03/2012, 23h40
  2. [WPF][WCF] Communication entre deux applications
    Par DotNET74 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 16/08/2010, 20h54
  3. Réponses: 2
    Dernier message: 27/02/2007, 13h07
  4. Réponses: 8
    Dernier message: 10/05/2006, 23h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo