2012-01-31 79 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://*" />实际上有助于