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 :

Accès service d'une application silverlight depuis le web


Sujet :

Silverlight

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Par défaut Accès service d'une application silverlight depuis le web
    Bonjour à tous,

    J'ai crée une application silverlight qui affiche les données de la table d'une base.
    L'application marche parfaitement en debug. La première fois ou je l'ai realease et mis sur le serveur de test en local l'application s'exécuté bien mais les donnés n'apparaissaient pas (une erreur apparaissait).
    Après recherche il c'est avéré que je n'avais pas mis le clientaccesspolicy.xml pour autorisé l'application à utiliser le service ( si j'ai bien comprit ?!).

    Bref tout cela pour dire que ca marchait. On a donc basculé le serveur et l'application avec un accès par le web. Et l'a l'application fonctionne en local, en lan (par le réseau de l'entreprise) mais pas par le web. Une erreur apparait malgré le fait que l'application tourne mais aucune donné n'est affiché.

    Pour faire simple voici ce qui devrait être affiché :

    (On voit bien des donnés dans le datagrid en bas)

    Pour voir l'erreur et l'application sans le contenu : http://81.252.181.218/lab1
    (Pour voir l'erreur il faut ouvrir avec IE et clicker en bas à gauche sur le triangle orange.

    On sait jamais je vous mets une copie de mon clientaccesspolicy.xml :

    Code : 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="SOAPAction">
            <domain uri="*"/>
          </allow-from>
          <grant-to>
            <resource path="/" include-subpaths="true"/>
          </grant-to>
        </policy>
      </cross-domain-access>
    </access-policy>
    Et de mon crossdomain.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0"?>
    <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
    <cross-domain-policy>
      <allow-http-request-headers-from domain="*" headers="SOAPAction,Content-Type"/>
    </cross-domain-policy>

    Voilà si quelqu'un peut m'aider. Je penche pour l'instant sur un problème de droit comme j'avais eu précédemment mais la je vois plus du tout malgré de nombreuse recherche.
    Si vous avez des questions ou autre je reste à votre entière disponibilité.

    Merci d'avance.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    En y allant la console d'erreurs de FF me fournit cela :
    Erreur*: Unhandled Error in Silverlight Application 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. à System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
    à SilverlightApplicationTEST.ServiceReferencePostesFonderie.GetAllPeseesCompletedEventArgs.get_Result()
    à SilverlightApplicationTEST.MainPage.client_GetAllPeseesCompleted(Object sender, GetAllPeseesCompletedEventArgs e)
    à SilverlightApplicationTEST.ServiceReferencePostesFonderie.ServicePostesFonderieClient.OnGetAllPeseesCompleted(Object state)
    Fichier Source*: http://81.252.181.218/lab1/
    Ligne*: 0
    Ça peut t'aider ? Il faudrait récupérer l'innerException pour avancer. Mais apparemment ça a pété sur la propriété Result lors du get !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Par défaut
    Il me semble que j'avais la même erreur que celle en local et lan avent de rajouter le clientaccesspolicy. C'est d 'ailleurs pour ca que je me pose des questions sur l'accès distant du service ( en tout cas autre que local ou lan).

    En ce qui concerne l'InnerException je suis entrain de chercher comment on peut la récupérer.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    Tu as bien mis le clientaccesspolicy au niveau de la racine du site web ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Par défaut
    Citation Envoyé par Arnard Voir le message
    Tu as bien mis le clientaccesspolicy au niveau de la racine du site web ?
    Oui il est bien à la racine à savoir C:\inetpub\wwwroot . De plus je le vois bien dans IIS à la racine.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 159
    Par défaut
    Hello,

    En faisant une trace réseau avec IE9, je vois 2 requêtes partir en erreur sur les 2 URLs suivantes:

    - http://pmlabs.preciamolen.fr/clientaccesspolicy.xml
    - http://pmlabs.preciamolen.fr/crossdomain.xml

    Donc l'application Silverlight n'arrive pas à récupérer tes policies et ne se connecte donc pas à ton service.

    C'est quoi ce domaine ? Cela a un rapport avec ton IP donnée plus haut?

    Bye,

    David

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Par défaut
    Bonjour David,

    Tout d'abord merci à vous deux pour les réponses.

    Alors l'adresse : http://81.252.181.218/ est l'adresse web du serveur et l'adresse http://pmlabs.preciamolen.fr/ est l'adresse intranet de l'entreprise. Il est donc logique que l'application silverlight via le service n'arrive pas à récupérer les policies à cette adresse. Elle pointe sur le service en local alors que l'application tourne à distance.

    J'ai donc changé la référence du service qui était celle de l'intranet par http://81.252.181.218/lab1/ServicePostesFonderie.svc .

    Cela fonctionne maintenant à cette adresse : http://81.252.181.218/lab1/ sur IE8 mais pas sous Firefox.
    Et cela ne fonctionne plus, en toute logique, sur http://pmlabs.preciamolen.fr/lab1/.

    Je vais essayé de voir pourquoi cela ne fonctionne pas sous Firefox . En attendant le site est accessible sous ie à cette adresse : http://81.252.181.218/lab1/

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Par défaut
    Bon ben voila cela fonctionne parfaitement sous Chorme IE et firefox . Il suffisait de faire un petit vidage du cache de firefox.

    Merci David pour m'avoir mis sur la voie.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/08/2010, 11h40
  2. Réponses: 10
    Dernier message: 26/10/2009, 15h02
  3. Réponses: 3
    Dernier message: 21/11/2006, 22h05
  4. Réponses: 8
    Dernier message: 28/10/2005, 09h21
  5. [Service] Lancer une application graphique
    Par Wookai dans le forum Windows
    Réponses: 3
    Dernier message: 18/08/2005, 12h26

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