1

我有一个网络服务和一个 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>

我的 Web 服务托管在 IIS 中。

使用这种配置,我仍然有这种错误:

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

请帮忙

4

1 回答 1

0
  • 您只需要一个策略文件。你不需要两者。
  • 确保其中一个(或两个)策略文件与 Web 服务存在于同一位置(域)中。
  • 要调试并查看发生了什么,请使用 Fiddler 之类的工具来验证客户端正在查找的策略 xml 文件的 url 路径。
于 2011-05-06T23:30:04.793 回答