2012-10-29 7 views
2

J'ai une application Silverlight 5 qui envoie des requêtes à un service de données WCF via HTTPS sur un domaine distinct (serveur) hébergé via IIS 6 (par exemple mydomain.com/service.svc).Silverlight 5 clientaccesspolicy.xml

L'application silverlight obtient une exception SecurityException, qui, je suppose, est liée à ne pas trouver un fichier clientaccesspolicy.xml approprié. J'ai un fichier clientaccesspolicy.xml défini dans le dossier wwwroot de mydomain.com qui ressemble à

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

La partie étrange est que quand on regarde le trafic Fiddler, il n'y a jamais une demande tenté de mydomain.com/clientaccesspolicy.xml.

L'autre chose est que le clientaccesspolicy.xml est servi uniquement sur https (le paramètre IIS sur ce serveur autorise uniquement les connexions ssl/tls), cela pourrait-il être une partie du problème?

+2

tous les deux dans la même zone (intranet/internet)? – potatopeelings

+0

@potatopeelings Il ne fonctionne pas avec ou sans violoneur, donc je ne pense pas que ce soit un problème de proxy – user1783084

Répondre

2

Vous pouvez essayer d'ajouter https: // explicitement dans votre allow-de:

<allow-from http-request-headers="*"> 
    <domain uri="http://*"/> 
    <domain uri="https://*" /> 
</allow-from> 

Je suppose que lorsque vous essayez de frapper directement le fichier que vous voyez (IIS sert réellement).

+0

Oui! Il semble que 'uri =" * "' ne soit pas un substitut à cela. Il semble que '*' ne fonctionne que du même protocole. Donc, si vous déboguez sur une URL http: // 'et essayez d'accéder à un service distant sur' https: // ' cela peut être une excellente solution. bien sûr, selon la nature de ce que vous envoyez en arrière, vous ne voulez pas autoriser l'accès http. –

0

pour cette solution:

<allow-from http-request-headers="*"> 
    <domain uri="*"/> 
    <domain uri="https://*" /> 
</allow-from> 
Questions connexes