2009-08-24 2 views
0

Der fehlende Link in meiner IIS7 + Silverlight 3.0 + WCF-Dienst App ist die Cross-Domain-Richtlinie. Gibt es Anweisungen zum Erstellen/Abrufen einer solchen Richtlinie? Ich verstehe, dass es zwei XML-Dateien gibt, die im Webstamm der App angezeigt werden müssen. Was lege ich in sie ein, wie formatiere ich sie, gibt es eine Vorlage, die angibt, welche Felder ausgefüllt werden müssen? Gibt es Anweisungen irgendwo auf msdn, die erklären, wie man das macht? Ich bin gerade über mögliche Begriffe, um mit Google in Frage zu stellen, würden alle Hinweise geschätzt werden.Wie erstellen/erhalten Sie eine Cross-Domain-Richtlinie für einen iis7-WCF-Dienst?

Danke, Brian

Antwort

1

Silverlight für clientaccesspolicy.xml sieht (die Silverlight-spezifisch ist), wenn das ist es nicht gefunden wird auf crossdomain.xml zurückgreifen, die auch verwendet werden können, zum Beispiel durch Blitz. Sie brauchen nur eine davon (Sockets funktionieren nur mit clientaccesspolicy.xml, aber webclient und http funktionieren mit beiden).

Lets bleiben mit clientaccesspolicy.xml für jetzt, da es weniger Vorbehalte gibt und die crossdomain.xml Unterstützung wurde nur hinzugefügt, um mit Flash aufzuholen, da öffentliche Dienste wie Flickr bereits eine haben.

Die DTD für clientaccesspolicy.xml einschließlich der Beschreibung ist bei this page on MSDN

dieses Grund Beispiel Ihre gestartet

<?xml version="1.0" encoding="utf-8"?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from>  
     <domain uri="*"/> <!-- Allows calls from every domain --> 
     </allow-from>  
     <grant-to>  
     <resource path="/api" include-subpaths="false"/> <!-- Only allows domain/api? to be called nothing else including api.txt, api/foo etc... --> 
     </grant-to>  
    </policy> 
    </cross-domain-access> 
</access-policy> 
+0

ok so gehen sollte, sollte der Pfad Attribut der Ressource auf den Standort der Punkt, was, meine zusammengestellt dll? –

+1

an den Endpunkt Ihres WCF-Dienstes. Normalerweise hätten Sie etwas wie http://www.foo.com/api/service. Sie können es auch auf setzen, um alles in der Domäne zuzulassen. – olle

+0

hey so das ist was ich getan habe und ich bin mir sicher ich bin jetzt nahe dran, aber ich bekomme immer noch einen CrossDomainError. Gibt es noch etwas, das ich überprüfen kann? –

Verwandte Themen