2009-05-12 8 views
1

J'essaie d'accéder à un service https wcf de Silverlight. la clientaccesspolicy est placée sur la racine du service et j'ai vérifié via silverlightspy qu'elle est valide et que les appels sont autorisés. je suis capable d'appeler ce service Web avec succès à partir du client de bureau, mais quand essaie d'appeler Silverlight il jette une erreur que l'appel à .... service échoué peut être cross domaine poliecy etc n'est pas valide .... des idées? ?? est ici la croix politique de domaine de service aussi:appel https wcf service de silverlight

<?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 include-subpaths="true" path="/" /> 
     </grant-to> 
    </policy> 
    </cross-domain-access> 
</access-policy> 
+0

voir que la politique de domaine croix ... – Nate

+0

désolé! C'est ajouté maintenant. –

Répondre

1

Si le service et l'application silverlight sont servis à partir du même site Web et que vous utilisez Silverlight 4, vous pouvez accomplir cela sans un fichier de stratégie inter-domaine par:

  • Accès à l'application silverlight par https
  • Utilisation d'une adresse relative dans le fichier ServiceReferences.ClientConfig pour accéder au service
  • Utilisation de la sécurité du mode de transport dans BasicHttpBinding pour le service.

Voici un exemple de ServiceReferences.ClientConfig: Non

<configuration> 
    <system.serviceModel> 
     <bindings> 
      <basicHttpBinding> 
       <binding name="BasicHttpBinding_IMyService" maxBufferSize="2147483647" 
        maxReceivedMessageSize="2147483647"> 
        <!--Transport mode security (setup the same way on the server):--> 
        <security mode="Transport" /> 
       </binding> 
      </basicHttpBinding> 
     </bindings> 
     <client> 
      <!--Relative address (This is the part that requires SL4):--> 
      <endpoint address="../Services/MyService.svc" 
       binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService" 
       contract="MyApplication.MyService" name="BasicHttpBinding_IMyService" /> 
     </client> 
    </system.serviceModel> 
</configuration> 
Questions connexes