在同一个域中工作时Silverlight跨域错误

时间:2012-01-31 11:22:35

标签: silverlight ssl dns

我正在尝试使用ssl和silverlight客户端应用程序访问.asmx Web服务, 我做过的事情: 1.我有一个crossdomain.xml(只需要clientaccesspolicy.xml或crossdomain.xml)。 2.我在serviceReferences.ClientConfig文件中有标记。 3.当我用ssl(“https:// ...”)调用webservice时,我得到了跨域错误 当我将访问点更改为没有ssl时(“http:// ...”)它可以工作! 4.我使用和不使用ssl浏览了web服务地址,boath工作。

如何在同一个域工作时遇到跨域错误?...

2 个答案:

答案 0 :(得分:1)

确保在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”,而是使用类似address =“../ Services / ExampleService.asmx”(取决于XAP文件所在的文件夹)。

答案 1 :(得分: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://*" />实际上有帮助