Silverlight 4.0:跨域策略错误

时间:2011-05-06 09:55:12

标签: web-services silverlight-4.0 asmx crossdomain.xml clientaccesspolicy.xml

我有一个webservice和一个Silverlight应用程序。 我还有一个crossdomain.xml和clientaccesspolicy.xml

<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

这是我的跨域政策

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy 
  SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="http://localhost/MHVWS/MachineHistoryWS.asmx" />
</cross-domain-policy>

我的网络服务正在IIS中托管。

使用这种配置我仍然会遇到这种错误:

  

尝试向URI“http://localhost/MHVWS/MachineHistoryWS.asmx”发出请求时发生错误。这可能是由于尝试在没有适当的跨域策略的情况下以跨域方式访问服务,或者是不适合SOAP服务的策略。您可能需要联系服务的所有者以发布跨域策略文件,并确保它允许发送与SOAP相关的HTTP标头。在不使用InternalsVisibleToAttribute属性的情况下,在Web服务代理中使用内部类型也可能导致此错误。有关更多详细信息,请参阅内部异常。

请帮忙

1 个答案:

答案 0 :(得分:0)

  • 您只需要一个策略文件。你不需要两者。
  • 确保这些策略文件中的一个(或两个)与Web服务位于同一位置(域)。
  • 要调试并查看正在发生的事情,请使用Fiddler之类的工具来验证客户端正在查找的策略xml文件的URL路径。