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 :

Problème entre Silverlight/son web service / IIS


Sujet :

Silverlight

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut Problème entre Silverlight/son web service / IIS
    Bonjour à tous (mon premier poste que d'émotion)
    Alors j'ai un énormeeeeeeee problème et je commence à manquer de ressource...
    Donc j'ai créé une application en silverlight (version 3) avec visual studio 2008 qui communique avec une base de données à partir de son webservice référence.
    Je test l'application avec le serveur de développement ASP.Net que génére Visual studio et la... tjr pas de souci ^^
    Tout est jolie ddonc il est temps de mettre tous ca sur IIS et la crack l'application se lance mais n'arrive pas à acceder à son web service référence... (Il me renvoie serveur No found).
    Je fouille dans tous les forums possible et la je vois que ca serai du au type d'accé qui lui déplait... (Les paramètres de sécurité pour ce service requièrent l’authentification « Anonymous »).
    Je cherche et je vois qu'il faut accéder au site par https avec certificat, ok je fais mon truc, pas de problème à ce niveau la mais tjr Serveur No Found.

    j'accéde à mon service par ces 2 lignes de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim binding = New BasicHttpBinding(Application.Current.Host.Source.Scheme.Equals("https", StringComparison.InvariantCultureIgnoreCase))
     
    ServiceWebOra = New ServiceOraClient(binding, New EndpointAddress(New Uri(Application.Current.Host.Source, "../ServiceOra.svc")))
    Sur le serveur de dev asp pas de souci sur iis no found

    je remplace binding par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim binding = New BasicHttpBinding(BasicHttpSecurityMode.Transport)
    car la sécurité est fournie à l'aide de https du certificat ssl et le service est authentifié par le client à l'aide du certiciat SSL du service.

    Bon tjr no found, c'est dans cette partie la que je me demande si j'ai pas zapé un truc, si il faut pas compléter le binding par la référence du certificat ? si le certificat doit etre installé pour le service et non le site (quelque doute sur ca car le service est dans le site) ou alors ca viendrai de IIS ?
    Quoiqu 'il en soit pour ces questions je vois pas comment faire et si il y a d'autre solution je suis pas contre ^^

    Merci d'avance!!!!!!!

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    T'as bien modifié l'adresse du web service (dans le fichier de config coté Silverlight) avant de déployer sur IIS ?
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut
    Oui, j'ai testé dans le cas en http et la nouvelle adresse et en https aussi (en http il refuse car il me demande que cela soit sécurisé et en https comme d'hab serveur no found).

  4. #4
    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
    Tu devrais activer la visibilité des Faults ou si celui-ci est pas assez parlant utiliser un Trace viewer

    http://msdn.microsoft.com/en-us/library/ms732023.aspx

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut
    Ah j'étais justement sur ton poste du 02/02/2010
    Donc deja ca marche nikel ce que tu m'as passé
    ca me sort :

    Le service «*/suimatsilverlight/ServiceOra.svc*» ne peut pas être activé en raison d’une exception lors de la compilation. Le message de l’exception est*: Impossible de trouver une adresse de base qui correspond au schéma http pour le point de terminaison avec la liaison BasicHttpBinding. Les schémas d’adresse de base inscrits sont [https].. ---> System.InvalidOperationException: Impossible de trouver une adresse de base qui correspond au schéma http pour le point de terminaison avec la liaison BasicHttpBinding. Les schémas d’adresse de base inscrits sont [https].
    coté silverlight j'ai ca dans mon ServiceReferencesWeb:

    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
    <configuration>
      <system.serviceModel>
        <bindings>
          <basicHttpBinding>
            <binding name="BasicHttpBinding_ServiceOra" maxBufferSize="2147483647"
                maxReceivedMessageSize="2147483647">
              <security mode="Transport">
                <transport>
                  <extendedProtectionPolicy policyEnforcement="Never"/>
                </transport>
              </security>
            </binding>
          </basicHttpBinding>
        </bindings>
        <client>
          <endpoint address="https://localhost/suimatsilverlight/ServiceOra.svc" binding="basicHttpsBinding"
                bindingConfiguration="BasicHttpBinding_ServiceOra" contract="ServiceReference1.ServiceOra"
                name="BasicHttpBinding_ServiceOra" />
        </client>
      </system.serviceModel>
    </configuration>
    Coté asp j'ai ca :

    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>
     
      <behaviors>
       <serviceBehaviors>
        <behavior name="SilverlightSuitMat2.Web.ServiceOraBehavior">
     
          <serviceMetadata httpsGetEnabled="true"/>
     
         <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
       </serviceBehaviors>
      </behaviors>
     
      <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
      <services>
     
       <service behaviorConfiguration="SilverlightSuitMat2.Web.ServiceOraBehavior"
        name="SilverlightSuitMat2.Web.ServiceOra">
        <endpoint address="" binding="basicHttpBinding"  contract="SilverlightSuitMat2.Web.ServiceOra"  />
         <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
       </service>
      </services>
     </system.serviceModel>
    Donc selon ce que dit le message d'erreur, je pense avoir oublier de remplacer qlq chose dans l'un des 2 fichier ou alors ca sera dans la configuration du site dans IIS ?

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Y'aurait pas a ajouter côté Serveur un bindingConfiguration pour dire que ton service est sécurisé ?

    un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <basicHttpBinding>
            <binding name="BasicHttpBinding_ServiceOra" maxBufferSize="2147483647"
                maxReceivedMessageSize="2147483647">
              <security mode="Transport">
                <transport>
                  <extendedProtectionPolicy policyEnforcement="Never"/>
                </transport>
              </security>
            </binding>
          </basicHttpBinding>
        </bindings>
    du côté Serveur

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut
    Possible, j'ai essayé mais l'erreur est la même.
    Par contre j'ai essayé aussi d'attendre directement le service par son adresse

    (ca pointe vers le serveur de dev asp dans pour cette adresse suivante)

    http://localhost:3517/ServiceOra.svc?wsdl

    Pas de souci

    (ca pointe vers le serveur IIS local dans pour cette adresse)

    https://localhost/suimatsilverlight/ServiceOra.svc?wsdl

    la

    Impossible de trouver une adresse de base qui correspond au schéma http pour le point de terminaison avec la liaison BasicHttpBinding. Les schémas d’adresse de base inscrits sont [https].
    donc au moin je peux concentrer mes recherches sur la partie web.config coté asp, c'est deja ca.

    Il doit me manquer un flag quelque part...

  8. #8
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Ce que signifie le message est qu'il essaie d'hoster un service non sécurisé mais qu'il se rend compte que l'adresse sur laquelle il heberge le service commence par http et il se prend les pieds dans le tapis vu qu'il ne sait pas si c'est sécurisé ou pas.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut
    Ce qui est étonnant car il fait parti du site qui est entierement en https,

    mais éffectivement quand je test le site en mode "anonymous" mais toujour en SLL et que j'essaye de joindre le service directement par l'adresse :

    https://localhost/suimatsilverlight/ServiceOra.svc

    il me le trouve bien mais me demande pour le voir en mode xml

    http://localhost/suimatsilverlight/ServiceOra.svc?wsdl

    donc en http et si je clic sur le lien naturellement il me dit qu'il faut remplacer http par https.

    Et hop on repart au premier lien

    Une question commence à me turtulpiner est il possible d'envoyer une requete SOAP par https ? est on pas condamner à être en http
    Et pourquoi est on obligé d'être en connection anonymous sur IIS pour avoir accé au service et que dans d'autre style de connection (ex : digest ou de base) ca plante alors que le tout est à l'intérieur du même site ?

    (si j'ai la réponse au question ca va en jeter un max pour mon passage de projet en bts!)

  10. #10
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Actuellement tu essaies de sécuriser la couche transport peu importe ce qui passe dedans (SOAP est la couche message). Cela se fait en indiquant côté serveur dans ton bindingconfiguraiton que la security est en mode Transport.

    Ensuite, si tu veux authentifier le client tu peux te servir de ca: http://msdn.microsoft.com/en-us/library/ms731334.aspx
    Il faut configurer le clientcredentialtype

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut
    merci pour tout cette aide, je testerai ca après le bts histoire d'etre à tete reposé.

    La suite au prochain épisode

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut
    youhouuuuuuuuu j'ai réussi!!!!!!!!!!!
    Donc mon problème était coté asp... par rapport à mon premier poste j'ai du rajouter certaine chose

    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
    <system.serviceModel>
     
      <behaviors>
       <serviceBehaviors>
        <behavior name="SilverlightSuitMat2.Web.ServiceOraBehavior">
     
          <serviceMetadata httpsGetEnabled="true"/>
     
         <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
       </serviceBehaviors>
      </behaviors>
     
      <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
      <services>
     
       <service behaviorConfiguration="SilverlightSuitMat2.Web.ServiceOraBehavior"
        name="SilverlightSuitMat2.Web.ServiceOra">
        <endpoint address="" bindingConfiguration="secured" binding="basicHttpBinding"  contract="SilverlightSuitMat2.Web.ServiceOra"  />
         <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
       </service>
      </services>
    <bindings>
          <basicHttpBinding>
            <binding name="secured">
              <security mode="Transport">
                <transport clientCredentialType="None"/>
              </security>
            </binding>
          </basicHttpBinding>
        </bindings>
     </system.serviceModel>
    donc j ai du rajouter un configuration bindingConfiguration="secured" coté asp mais surtout mettre un s à mexHttpsBinding.
    Coté silverlight,il n'y a pas eu besoin de changer qlq chose

    Voila donc le site marche bien en connection https et plus d'erreur Anonymous !

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

Discussions similaires

  1. [Débutant] Problème compatibilité Silverlight/son web service / IIS
    Par molto1bello dans le forum Silverlight
    Réponses: 0
    Dernier message: 07/06/2013, 10h47
  2. [débutant]mettre son web service dans le serveur local
    Par am@123 dans le forum Services Web
    Réponses: 1
    Dernier message: 17/05/2007, 22h43
  3. Problème pour définir un web service client
    Par GRicco dans le forum NetBeans
    Réponses: 5
    Dernier message: 10/04/2007, 09h54
  4. [Tableaux] tableau en entrée d'un web service
    Par virginied dans le forum Langage
    Réponses: 1
    Dernier message: 19/09/2006, 17h47
  5. Réponses: 5
    Dernier message: 04/07/2006, 00h11

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