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 :

Utiliser des scripts PHP


Sujet :

Silverlight

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Par défaut Utiliser des scripts PHP
    Bonjour,

    Je suis en train de réaliser une application Silverlight qui se connecte à une base de donnée MySQL selon le modèle du tutoriel de nico-pyright :

    http://nico-pyright.developpez.com/t...lightandmysql/

    Dans l'évenement DownloadStringCompleted, j'obtiens une erreur de sécurité.

    J'ai bien noté qu'au paragraphe 6, qu'une erreur de securité était levée dans le cas où l'on n'utiliserai pas un projet de type web site. J'ai pourtant bien utilisé ce type de projet.

    Une idée de la source du problème?

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    un problème de fichier XML (clientaccesspolicy) qui n'est pas en place ?

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Par défaut
    Non ça n'est pas ça...

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Par défaut
    Je pense que le problème vient de mon hébergeur de ma base mySQL, c'est à dire free pour ne pas le nommer.
    A mon avis le port 3306 est clos et empêche un accès distant à la base.

    Je n'ai, en effet, plus l'exception une fois que mon application est uploadée sur le site free.

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Ah oui: les ports pour accéder à MySQL sont bloqués.

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Par défaut
    En fait, mon problème vient du fait que je souhaite accéder à une base MySQL via une application Silverlight.

    La solution des scripts php fonctionne, mais me parait peux élégante.

    Peut être que le problème a été solutionné par Microsoft depuis? A moins qu'il y ai une solution moins contraignante, avec Linq peut être?

  7. #7
    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
    Citation Envoyé par PerpetualSnow Voir le message
    La solution des scripts php fonctionne, mais me parait peux élégante.
    Je ne vois pas en quoi c'est pas élégant. Au final c'est juste un webservice en php. Que ce soit en php, .net ou java ne change pas grand chose finalement.

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Par défaut
    Je suis désolé d'avoir employé l'expression "peu élégante", mais en tant que développeur .NET spécialisé dans les applcations Windows, le php me semble assez obcur. Mes connaissances en php viennent du livre de la collection "pour les nuls", donc sont peu élevées.
    En fait, je suis à la recherche d'une solution 100% .NET. J'aurai aimé accéder à ma base mySQL via Silverlight, de la même manière que je peux le faire en ASP.NET.
    Après une semaine de prise de tête, et de nombreux essais avec Silverlight + webservice ou encore Silverlight + script Php, la solution que je prefère est celle en ASP.NET.

    Mon but final étant de créer un site avec un accès sécurisé, c'est pour cela que je cherche une solution avec une technologie que je connais ou que je peux apprendre à connaitre facilement. Je souhaite éviter au maximum les failles, donc je cherche une solution sur laquelle j'aurai un haut niveau de maitrise.

  9. #9
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par PerpetualSnow Voir le message
    J'aurai aimé accéder à ma base mySQL via Silverlight, de la même manière que je peux le faire en ASP.NET.
    Et pourquoi pas 1 service WCF qui accède à MySQL (donc qui est stocké sur le serveur MySQL) et qui est interrogé par ton application Silverlight ?

  10. #10
    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
    Si tu veux interroger une base MySql tu peux le faire aussi bien en .NET qu'en PHP. Ici le problème semble que tu veuilles interroger ta base free, or il n'y a que le php qui fonctionne sur free, et la base de donnée et bloqué en connexion à distance.

    La seule solution, pour ta base MySql chez free, est donc de passer par du php.

  11. #11
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Par défaut
    En fait, je me sert de ma page perso free pour faire des tests en ligne. Mais au final, je pense déployer mon application sur un serveur Windows que je n'ai pas encore loué.

    De toute manière, que je choisisse une page ASP.NET ou un service WCF, je vais avoir besoin d'un serveur ou tourne le framework .NET, donc je ne pourrai pas l'utiliser chez free.

    Vous connaissez peut-être un hebergement gratuit avec .NET afin que je puisse faire des essais.

  12. #12
    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
    Vous connaissez peut-être un hebergement gratuit avec .NET afin que je puisse faire des essais.
    Ca n'existe pas Y'a Ikoula à 3€/mois je crois bien.

  13. #13
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Par défaut
    Et pourquoi pas 1 service WCF qui accède à MySQL (donc qui est stocké sur le serveur MySQL) et qui est interrogé par ton application Silverlight ?
    Je suis en train d'essayer de mettre en place un service WCF avec une application silverlight.

    J'utilise le service WCF qui est implémenté par défaut : GetData();

    Quand je lance mon application mon application lance une exception au niveau de la construction du service : new service()

    Et j'ai les deux warnings suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning	1	Custom tool warning: Endpoint 'WSHttpBinding_IService1' at address 'http://localhost:8731/Design_Time_Addresses/WcfServiceLibrary1/Service1/' is not compatible with Silverlight 2. Skipping..	D:\Pyll\Devel\Pyll.WebSite\SQLService\Service References\ServiceReference1\Reference.svcmap	1	1	SQLService
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning	2	Custom tool warning: No endpoints compatible with Silverlight 2 were found. Please note that only Basic Profile / SOAP 1.1 services are supported. If you are attempting to use a Windows Communication Foundation service, make sure you are using the BasicHttpBinding.A client proxy class was generated but it will not be usable unless endpoint information compatible with Silverlight 2 is provided via the constructor.	D:\Pyll\Devel\Pyll.WebSite\SQLService\Service References\ServiceReference1\Reference.svcmap	1	1	SQLService
    Y'a t'il encore quelque chose que j'ai raté...?

  14. #14
    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
    Silverlight n'est compatible qu'avec le binding basicHttpBinding. Vérifie qu'il soit bien utilisé dans ton service.
    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.

  15. #15
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Par défaut
    J'ai bien spécifié basicHttpBinding dans le fichier app.config de mon service.

    Faut il également le spécifier ailleurs?

  16. #16
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Par défaut
    Je ne sais pour quelle raison mais mon fichier Service.ClientConfig était vide.

    Mon erreur venait de là.

    Mais la série noire continue puisque que j'obtiens maintenant une CommunicationException :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Une erreur s'est produite en tentant d'effectuer une demande à l'URI « http://localhost:8731/Design_Time_Addresses/WcfServiceLibrary1/Service1/ ». Ce problème peut être dû à une tentative d'accès à un service entre domaines sans qu'une stratégie entre domaines appropriée soit en place ou une stratégie inadaptée aux services SOAP. Il est possible que vous soyez contraint de contacter le propriétaire du service pour publier un fichier de stratégie entre domaines et veiller à ce qu'il autorise l'envoi d'en-têtes HTTP SOAP. Consultez l'exception interne pour plus de détails.
    Pourtant j'ai bien ajouté le fichier crossdomain.xml dans le projet du site Web :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <cross-domain-policy>
      <allow-access-from domain="*" /> 
      </cross-domain-policy>
    D'où cela eut il venir?

  17. #17
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Par défaut
    Quand je crée un nouveau service dans le projet du site web silverlight, il n'y a aucun problème.
    La consommation du service se déroule bien, même quand je me connecte à une base mySQL (je commence enfin à entrevoir la solution pour le développement de mon application finale).

    Le soucis, c'est que ça ne fonctionne pas si je crée un projet WcfService Library. Je pense que ça vient du fait que le site web silverlight et le service wcf s'execute sur des domaines différents (tout du moins, localhost avec des ports différents). Comment résoudre ce problème?

    J'espère trouver la solution bientôt, car les web services me semblent une très bonne solution pour apporter de nouvelles fonctionnalités à Silverlight.

  18. #18
    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
    Citation Envoyé par PerpetualSnow Voir le message
    Quand je crée un nouveau service dans le projet du site web silverlight, il n'y a aucun problème.
    La consommation du service se déroule bien, même quand je me connecte à une base mySQL (je commence enfin à entrevoir la solution pour le développement de mon application finale).

    Le soucis, c'est que ça ne fonctionne pas si je crée un projet WcfService Library. Je pense que ça vient du fait que le site web silverlight et le service wcf s'execute sur des domaines différents (tout du moins, localhost avec des ports différents). Comment résoudre ce problème?

    J'espère trouver la solution bientôt, car les web services me semblent une très bonne solution pour apporter de nouvelles fonctionnalités à Silverlight.
    Ben il faut mettre le clientaccesspolicy.xml à la racine de ton service.

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="utf-8"?>
    <access-policy>
      <cross-domain-access>
        <policy>
          <allow-from http-request-headers="*">
            <domain uri="*"/>
          </allow-from>
          <grant-to>
            <resource path="/" include-subpaths="true"/>
          </grant-to>
        </policy>
      </cross-domain-access>
    </access-policy>

  19. #19
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 192
    Par défaut
    En nommant le fichier clientaccesspolicy.xml à la place de crossdomain.xml, je peux enfin utiliser un service Wcf à partir d'une application Silverlight.


    C'est formidable ! ! Ca marche enfin ! !

    Je remercie tous les participants à cette discussion pour leur aide précieuse.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/07/2012, 05h54
  2. [JMeter] Utiliser des scripts BeanShell
    Par otsgd dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 08/08/2006, 09h44
  3. Association MIME des scripts PHP
    Par Jean_Benoit dans le forum Zend Studio
    Réponses: 3
    Dernier message: 13/05/2006, 11h56
  4. [EasyPHP] Faire tourner des scripts PHP en cgi
    Par Jim_Nastiq dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 19/04/2006, 10h45
  5. Réponses: 4
    Dernier message: 30/11/2005, 19h13

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