2012-01-31 47 views
0

我試圖訪問與.ssl和silverlight客戶端應用程序相關的.asmx web服務, 我做過的事情: 1.我有一個crossdomain.xml(只需要clientaccesspolicy .xml或crossdomain.xml)。 2.我在serviceReferences.ClientConfig文件中有標籤。 3.當我使用ssl(「https:// ...」)調用webservice時,得到了跨域錯誤 ,並且當我將接入點更改爲沒有ssl(「http:// ...」)時,有用! 4.我瀏覽了web服務地址,有沒有ssl,boath的作品。Silverlight在同一個域中工作時出現跨域錯誤

我怎樣才能得到一個跨域錯誤在同一領域工作一段時間?...

+0

你只想要一個'clientaccesspolicy.xml'文件,因爲它有更多的選擇,並且被設計爲Silverlight('crossdomain.xml'是舊版本的Flash兼容的文件)。你需要確保你已經允許https以及http。 – 2012-01-31 15:26:03

回答

0

請確保您有在clientaccesspolicy.xaml的SSL正確的入口。你可以在msdn http://msdn.microsoft.com/en-us/library/cc645032%28v=vs.95%29.aspx上查看。但是,如果您的Web服務與Silverlight應用程序位於同一個Web應用程序中,則可以在客戶端的端點配置(.ClientConfig)中將相對路徑傳遞給WS,並且不需要crossdomain/clientaccesspolicy文件。例如,不是使用address =「http://localhost/Services/ExampleService.asmx」,而是使用sth如address =「../Services/ ExampleService.asmx」(具體取決於XAP文件所在的文件夾)。

0
<?xml version="1.0" encoding="utf-8"?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from http-request-headers="*"> 
     <domain uri="*"/> 
     <domain uri="http://*" /> 
     </allow-from> 
     <grant-to> 
     <resource path="/" include-subpaths="true"/> 
     </grant-to> 
    </policy> 
    </cross-domain-access> 
</access-policy> 

像這樣。 對於沒有明顯的理由<domain uri="http://*" />實際上有助於