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

Silverlight Discussion :

Service WCF, HTTP et HTTPS


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 121
    Par défaut Service WCF, HTTP et HTTPS
    Bonjour, je poste ma question ici parce que le service WCF est silverlight enabled, voila j'ai un custombinding qui utilise du binarymessage encoding et j'aimerais juste faire en sorte qu'il soit accessible en http ET en https, j'ai essayé beaucoup de solution, regarder beaucoup de tuto mais y'a toujours quelque chose qui cloche, une erreur ou autre.

    La question en gros, que dois-je changer pour que mon service soit accessible via les 2 protocoles ?

    Merci

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Je connais pas la syntaxe avec le custom binding.

    Tu ne peux pas passer par un basicHttpBinding ?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 121
    Par défaut
    Alors j'utilise le custombinding pour pouvoir utiliser les supposés meilleurs performances du binary encoding, y'a t'il vraiment une différence ?

    Si tu connais la syntaxe pour le basicHttpBinding, je serais tout de même intéressé je te remercie

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Me semble qu'en basicHttpBinding il faut mettre dans le web.config
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <binding name="basicHttpBinding0">
              <security mode="Transport">
                <transport clientCredentialType="None"/>
              </security>
    </binding>
    Update la référence à ton service pour updater ton ServicesReferences.ClientConfig

    Et pour instancier le service il faut lui passer ce binding en paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BasicHttpBinding binding = new BasicHttpBinding(Application.Current.Host.Source.Scheme.Equals("https", StringComparison.InvariantCultureIgnoreCase)  ? BasicHttpSecurityMode.Transport : BasicHttpSecurityMode.None);

  5. #5
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    DaMo,

    Les performances sont bien meilleures surtout si tu utilises beaucoup de nombres dans tes services. Les BasicHttpBindings sont par nature assez verbeux puisqu'ils décrivent toute leurs informations en XML et donc en texte (WebService classique).
    Au contraire, Les BinaryMessages convertissent ces informations en binaires. un entier (Int32) en binaire prendra 4 octets contre
    11 caractères max (soit 22 octets) en BasicHttpBindings.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 121
    Par défaut
    Merci tout deux pour vos réponses et renseignements.

    Tu sais comment faire pour autoriser l'HTTPS avec un custombinding qui utilise du binarymessage encoding ?

  7. #7
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    J'imagine qu'en rajoutant ceci dans ta conf ca devrait marcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     <bindings>
      <webHttpBinding>
        <binding name="webBinding">
          <security mode="Transport"/>
        </binding>
      </webHttpBinding>
    </bindings>

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 121
    Par défaut
    Je réactualise ce post parce que le passage en SSL est vraiment d'actualité, C'est toujours la même problématique j'aimerais pouvoir me connecter à ce service via HTTP et HTTPS, et j'utilise toujours mon customBinding y'a donc pas de <security mode="Transport"/>, personne ici a configuré un Service WCF avec SSL + customBinding parce qu'il me serait d'une grande aide

    EDIT : bon j'ai réussi à faire fonctionner l'HTTPS only ce qui est déjà une avancée, faut savoir que pour sa j'ai fait une Release sur un serveur avec les modifications pour que sa fonctionne sachant qu'avec les modifications je ne peux même pas faire un update de mon service reference sous visual studio qui me lance des erreurs...

    Par contre mes call en HTTP du coup ne fonctionne plus et je ne peux pas voir pourquoi vu que mon service WCF passe en https (donc pas de fiddler etc)

    Voila les modifs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <serviceMetadata httpsGetEnabled="true" />
     
     <httpsTransport maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
              maxBufferSize="2147483647" />
    J'aimerais tout simplement savoir comment faire fonctionner les 2 protocoles

    ps : j'arrive a voir mon service en tapant l'url en http et en https

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 121
    Par défaut
    Bon j'ai réussi à faire passer le tout en HTTP et en HTTPS, mais y'a de quoi devenir dingue maintenant y'a certains appels WCF qui passent et d'autres qui passent pas sans réelles raisons apparentes comme dit plus haut si quelqu'un a rencontré ce problème sa serait sympa de m'orienter vers une solution ...

  10. #10
    Membre confirmé Avatar de cyberbobby
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut
    Salut !

    Je peux avoir ta config pour du BinaryMessageEncoding en https ? Si tu as réussi.

    Merci

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 121
    Par défaut
    WebConfig Serveur :
    Code xml : 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
     
    <behaviors>
        <serviceBehaviors>
          <behavior name="mydomaine.FoundServiceBehavior">
            <serviceMetadata httpsGetEnabled="true" />
            <serviceDebug includeExceptionDetailInFaults="false" />
            <dataContractSerializer maxItemsInObjectGraph="2147483647" />
          </behavior>
        </serviceBehaviors>
      </behaviors>
      <bindings>
        <customBinding>
          <binding name="customBinding0" closeTimeout="00:03:00" openTimeout="00:03:00"
            receiveTimeout="00:03:00" sendTimeout="00:03:00">
            <binaryMessageEncoding>
              <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
                maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
            </binaryMessageEncoding>
            <httpsTransport maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
              maxBufferSize="2147483647" />
          </binding>
        </customBinding>
      </bindings>
      <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
      <services>
        <service behaviorConfiguration="mydomaine.FoundServiceBehavior"
          name="mydomaine.FoundService">
          <endpoint address="" binding="customBinding" bindingConfiguration="customBinding0"
            contract="mydomaine.FoundService" />
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        </service>
      </services>
    ClientConfig Silverlight :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <binding name="CustomBinding_FoundService">
                        <binaryMessageEncoding />
                        <httpsTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647">
                          <extendedProtectionPolicy policyEnforcement="Never" />
                        </httpsTransport>
    	</binding>

    Je précise que sous Visual studio ceci ne fonctionne pas, mais en production sa marche nickel, enfin j'ai pas refait le test sou sVS 2010

Discussions similaires

  1. Service WCF et HTTPS
    Par GCSX_ dans le forum Services Web
    Réponses: 1
    Dernier message: 11/03/2012, 01h20
  2. Appel depuis Windows CE d'un service WCF https
    Par borgfabr dans le forum Windows Communication Foundation
    Réponses: 1
    Dernier message: 10/01/2011, 13h33
  3. Interface Web service : (Serveur en XML, HTTP) et un client SOAP
    Par commande dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 09/03/2009, 18h28
  4. Réponses: 1
    Dernier message: 26/02/2007, 09h44

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