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 :

[RIA Service] Télécharger fichier XML


Sujet :

Silverlight

  1. #1
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Par défaut [RIA Service] Télécharger fichier XML
    Bonjour,

    J'aimerai télécharger un fichier XML avec WCF RIA Services en faisant ceci :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            public void MaMethode()
            {
                WebClient client = new WebClient();
                client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
                client.DownloadStringAsync(new Uri("http://monurlquicontientlefichierxml/data.xml", UriKind.Absolute));
            }
            void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
            {
                String content = e.Result;
            }

    Malheureusement, je reçois une exception dès que j'appelle la méthode :
    Une exception s'est produite lors de l'opération, ce qui rend le résultat non valide. Consultez InnerException pour plus de détails sur l'exception.
    Où ce situe le problème ?

    Merci d'avance,

  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
    Cpa RIA Services ca. C'est juste un DL de fichier.

    Et si tu regardes dans InnerException ca te dit quoi ?

  3. #3
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Par défaut
    Bonjour Skyounet,

    En faites l'erreur est de type "Erreur de sécurité".

    J'ai donc utilisé Fiddler pour voir où se situe le problème, et je constate que lorsque j'essaye de récupérer les fichiers sur http://monadresse/data.xml, j'ai aussi deux requêtes HTTP sur http://monadresse/clientaccesspolicy.xml & http://monadresse/crossdomain.xml, qui sont bien évidemment en 404 NOT FOUND.

    Assez étrange, j'ai déjà fait des applications WP7 (et donc SL) avec un téléchargement de fichier XML de cette façon, je n'ai jamais eu besoin de ces deux fichiers.

  4. #4
    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
    Il s'agit d'un problème de cross-domain classique en Silverlight qui t'oblige à avoir les fichiers clientaccesspolicy.xml ou crossdomain.xml à la racine du serveur Web sur lequel tu veux récupérer les fichiers.

    Tu n'as pas cette "limitation" en SL pour WP7

  5. #5
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Par défaut
    Au techdays, j'avais vu qu'on pouvait télécharger un fichier XML en mode OOB, full-trust. De cette façon j'ai réussit à télécharger mon fichier XML sans le clientaccesspolicy.xml/crossdomain.xml

    Existe-t-il une altérnative pour pouvoir télécharger des fichiers XML (par exemple, un flux RSS) sur des sites internets dont nous n'avons pas les accès ?

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Il y a toujours la possibilité d'utiliser un serveur interne qui joura le role de proxy. Le client silverlight appel ton domaine avec par exemple l'url du serveur distant a appeler, ton serveur va chercher le flux et retourne tout ca au client silverlight.

  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 Joffrey Kern Voir le message
    Au techdays, j'avais vu qu'on pouvait télécharger un fichier XML en mode OOB, full-trust. De cette façon j'ai réussit à télécharger mon fichier XML sans le clientaccesspolicy.xml/crossdomain.xml

    Existe-t-il une altérnative pour pouvoir télécharger des fichiers XML (par exemple, un flux RSS) sur des sites internets dont nous n'avons pas les accès ?
    Tu crées un service qui fait relai entre ton app et l'autre serveur.

  8. #8
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Par défaut
    Je vais décrire les étapes pour réussir le téléchargement d'un flux RSS/fichier XML depuis une application Silverlight :

    - Création d'un projet WCF.
    - Méthode du service :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            public string GetXml(string url)
            {
                return XDocument.Load(url).ToString();
            }
    - Ajout du fichier clientaccesspolicy.xml dans le projet WCF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?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>
    - Abonnement au service WCF dans l'application Silverlight
    - Consommation du service :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            public MainPage()
            {
                InitializeComponent();
     
                Service1Client service = new Service1Client();
                service.GetXmlAsync("http://monurl/data.xml");
                service.GetXmlCompleted += new EventHandler<GetXmlCompletedEventArgs>(service_GetXmlCompleted);
            }
     
            void service_GetXmlCompleted(object sender, GetXmlCompletedEventArgs e)
            {
                XDocument doc = XDocument.Parse(e.Result); // contient le xml
            }
    Merci à tous pour votre aide !

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

Discussions similaires

  1. acceder a une fichier XML à partir d'un service web
    Par khallou2007 dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 01/12/2008, 21h00
  2. Web Service qui génère un Fichier XML
    Par Amir83 dans le forum Services Web
    Réponses: 8
    Dernier message: 29/05/2008, 13h32
  3. Envoi d'un fichier XML vers un Web Service
    Par Agrumes dans le forum Linux
    Réponses: 2
    Dernier message: 06/02/2008, 15h09
  4. télécharger un fichier xml
    Par thierryler dans le forum Langage
    Réponses: 1
    Dernier message: 26/11/2007, 16h14
  5. Télécharger un fichier XML et non l'ouvrir
    Par BouB dans le forum Langage
    Réponses: 4
    Dernier message: 21/03/2006, 19h37

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