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 :

Configuration Rest et Soap


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut Configuration Rest et Soap
    Bonjour,

    J'ai un service qui devrait avoir la possibilité d'etre consommé soit en SOAP soit en REST. Mon probleme c'est que le REST ne renvoie rien.

    Mon code:

    Interface
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     [ServiceContract]
        public interface IClients
        {
            [OperationContract]
            [WebGet(UriTemplate = "clients/{clientId}", ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare)]
            string[] GetAllClientsByClientId(int clientId);
        }
    Facade (implementation dê l'interface)
    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
     
     [AspNetCompatibilityRequirements (RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
        [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Single)]
    	public partial class ExposedService : IClients
    	{
     public string[] GetAllClientsByClientId(int clientId)
            {
                string[] clientArray = null;
     
                try
                {
                    List<Entity.Clients> clients = BusinessLogicLayer.Clients.GetAllClientsByClientId(clientId, out errMessage);
     
                    if (clients.Count > 0)
                    {
                        clientArray = new string[clients.Count];
                        for (int i = 0; i < clients.Count; i++)
                        {
                            clientArray[i] = clients[i].ClientName;
                        }
                    }
                    else
                    {
                        clientArray = new string[0];
                    }
                }
                catch (Exception ex)
                {
                    WebOperationContext.Current.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.BadRequest;
                    errMessage = "GetAllClientByClientId failed, error : " + ex.Message;
                    Tools.Log.MonitoringLogger.Debug(errMessage);
                }
     
                return clientArray;
            }
     }
    }
    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
     
    <system.serviceModel>
    		<services>
    			<service name="WCFServiceFacade.ExposedService" behaviorConfiguration="WCFWebServices.Behavior">
    				<endpoint address="http://localhost:10880/Services.svc" binding="basicHttpBinding" contract="WCFInterface.IClients"/><!--SOAP-->
            <endpoint address="rest" binding="webHttpBinding" contract="WCFInterface.IClients"/>
    				<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    			</service>
    		</services>
    		<behaviors>
    			<serviceBehaviors>
    				<behavior name="WCFWebServices.Behavior">
    					<serviceMetadata httpGetEnabled="true"/>
    					<serviceDebug includeExceptionDetailInFaults="true"/>
    				</behavior>
    			</serviceBehaviors>
          <endpointBehaviors>
            <behavior name="restBehavior">
              <webHttp/>
            </behavior>
          </endpointBehaviors>
        </behaviors>
    	</system.serviceModel>
    Avez-vous une suggestion ?

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Essaies ceci :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // A mettre avant l'instruction return clientArray;
    WebOperationContext.Current.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.OK;

  3. #3
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    J'ai trouvé l'erreur !!!! pour moi elle est vraiment bizarre, elle vient du REST --> ma methode GetAllClientsById(int clientId); fait planter le service car comme parametre il veut un type string et non un int!!!!!! Avec GetAllClientsById(string clientId); ca fonctionne. Ca m'embete de devoir changer tous les parametres de toutes mes methodes.

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

Discussions similaires

  1. Scanner de requête REST et SOAP
    Par flolebreton dans le forum Services Web
    Réponses: 1
    Dernier message: 28/03/2013, 01h34
  2. Methodes exposees en REST et SOAP
    Par topolino dans le forum Windows Communication Foundation
    Réponses: 16
    Dernier message: 28/03/2011, 09h13
  3. [Aide] Service web RESt et SOAP
    Par brixou dans le forum Services Web
    Réponses: 0
    Dernier message: 22/02/2011, 10h11
  4. SOAP et REST sans prise de tête en Java
    Par remyli dans le forum REST
    Réponses: 2
    Dernier message: 14/04/2009, 12h06
  5. [Configuration] SOAP SERVER presence d espace en debut de reponse
    Par magnus2005 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 31/07/2006, 15h51

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