Traitée crossdomain et clientaccesspolicy

  • vendredi 3 août 2012 13:41
     
      A du code

    Bonjour,

    je rencontre une erreur lié à l'accès distant d'une application Silverlight à mon service WCF.
    Le serveur IIS qui héberge l'application WCF est sur monSite.monsousdomaine.mondomaine.com et l'application Silverlight est sur ce même serveur.
    Aucun souci pour communiquer sur ce même serveur, par contre l'application est présente sur l'UAG, et du coup se situe sur monExtranet.mondomaine.com et redirige ensuite vers l'application, c'est dans ce cas de figure que je rencontre cette erreur.

    Le message de l'exception : 

    « Une erreur s'est produite en tentant d'effectuer une demande à l'URI 'http://...'. 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. Cette erreur peut également être liée à l'utilisation de  types internes dans le proxy de service Web sans utiliser l'attribut InternalsVisibleToAttribute. Consultez l'exception interne pour plus de détails. »

    Pourtant j'avais dès le départ rajouté mes fichiers crossdomain.xml et clientaccesspolicy.xml :

    <?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>



    <?xml version="1.0"?><!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"><cross-domain-policy>  <allow-access-from domain="*" /></cross-domain-policy>

    En analysant le traffic avec IE10, on remarque que des requêtes pour récupérer monSite.monSousDomaine.monDomaine.com/clientaccesspolicy.xml et crossdomain.xml sont faites, mais le résultat est signalé "Aborted". En copiant l'url de la requête, et en naviguant dessus, je parviens à accéder à ces fichiers sans problèmes...

    Quelqu'un aurait déjà rencontré cette situation ?


    Blog => http://ashworks.fr | Twitter => http://twitter.com/ashura95


Toutes les réponses

  • dimanche 5 août 2012 21:19
    Modérateur
     
     Traitée

    Bonjour,

    Le fichier ClientAccessPolicy ne peut-être récupéré que via le port 80 en utilisant HTTP (cf. la documentation http://msdn.microsoft.com/en-us/library/cc645032%28VS.95%29.aspx). Confirmez vous que votre fichier est accessible via le port HTTP 80 ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

  • lundi 6 août 2012 07:45
     
     

    Je confirme qu'il l'est !

    En utilisant fiddler, je trouve une erreur 512 quand l'application dans l'UAG essaye de récupérer les fichiers

    


    Blog => http://ashworks.fr | Twitter => http://twitter.com/ashura95


  • lundi 6 août 2012 22:10
    Modérateur
     
     

    Bonjour,

    Pouvez-vous nous donner le contenu des requêtes qui retourne l'erreur 502.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

  • mercredi 8 août 2012 08:10
     
     

    Bonjour et merci de vos réponses,

    malheureusement Fiddler ne m'intercepte plus de requête vers ces fichiers mais l'erreur reste présente...!

    EDIT :

    Je reviens sur ce que j'ai dit précédemment :

    J'ai deux machines (une sur Windows 8, utilisateur Windows Live, machine personnelle; une sous Windows 7, utilisateur et machine AD),

    depuis Windows 8 : Fiddler voit bien les deux requêtes citées plus haut.
    depuis Windows 7 : Fiddler ne voit pas ces requêtes

    Dans tous les cas : je passe par un extranet, via Forefront UAG, je suis donc authentifié en tant qu'utilisateur AD, mais le message d'erreur s'affiche requête ou pas.

    Dans la Raw view de la requête, je trouve :

    HTTP/1.1 502 Fiddler - DNS Lookup Failed
    Content-Type: text/html; charset=UTF-8
    Connection: close
    Timestamp: 09:53:07.404
    [Fiddler] DNS Lookup for "monSite.monSousDomaine.monDomaine.com" failed. No such host is known        

    J'avoue être un peu perdu sur ce coup là !


    Blog => http://ashworks.fr | Twitter => http://twitter.com/ashura95

  • mercredi 8 août 2012 23:09
    Modérateur
     
     

    Bonjour,

    Vous devez résoudre ce problème de DNS. Il faudrait voir avec vos administrateurs systèmes sur ce problème de résolution des DNS...

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

  • vendredi 10 août 2012 08:35
     
     
    Bonjour,

    il se trouve qu'en fait, le problème vient certainement du Host Address Translation de l'UAG. En gros, il parse et réécrit les URLs pour les faire pointer vers une adresse unique.
    Peut-on modifier le chemin d'accès pour que l'application aille cherche le clientaccesspolicy autre part ? Ou le générer dynamiquement ?
    Merci.

    Blog => http://ashworks.fr | Twitter => http://twitter.com/ashura95

  • dimanche 12 août 2012 21:07
    Modérateur
     
     Traitée

    Bonjour,

    Non, il n'est pas possible de modifier le chemon de recherche du clientaccesspolicy.xml. C'est codé en dur dans Silverlight.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

  • lundi 13 août 2012 07:55
     
     
    Très bien merci de vos réponses, je recherche une solution avec l'équipe qui gère l'UAG chez nous, je posterai la solution finale ici.

    Blog => http://ashworks.fr | Twitter => http://twitter.com/ashura95