Silverlight跨域访问WebService解决方法

这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头……

  在用Silverlight调用WebService时,发生以下错误:

  这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。

  原因:

  Silverlight通过WebService访问了别的服务端数据。s

  解决方法,建立跨域策略文件:

  在该Silverlight网站根目录建立2个XML文件:

以下是代码片段: ClientAccessPolicy.xml

<?xml version="1.0" encoding="utf-8" ?>

<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>

crossdomain.xml

<?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="*" /> <allow-http-request-headers-from domain="*" headers="*" /> </cross-domain-policy>   

原文地址:https://www.cnblogs.com/zhangxin1989/p/2669866.html