none
Silverlight如何引用公共web service RRS feed

  • 问题

  • 如题,silverlight可以引用公共的web service吗?

    引用的时候都会出一个错误:尝试向 URI“http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。有关详细信息,请参阅内部异常。

    那引用的时候应该怎么引用呢?在代码中动态引用吗?


    请大家多支持学生专区~~
    2011年4月7日 9:38

答案

  • 你好,

    Silverlight 在默认情况下只允许源站点通信。想要实现跨域访问,则所访问的域服务必须明确允许跨域访问(如上连接文档所描述)。

    但你现在所访问的域服务不是你自己的,而且错误表明该服务没有允许跨域访问,所以你不能通过Silverlight直接访问该服务。

    解决方案是你自己创建一个自己的Web Services(Silverlight能访问的WebServices)去访问你想要访问的公共的Web service, 然后在用Silverlight去访问自己的WebServices。

    这样自己的Web Services就起到了中间桥接的作用。


    Daoping Liu - MSFT
    • 已标记为答案 doukooo 2011年4月12日 14:54
    2011年4月12日 3:34
    版主

全部回复

  • 您好,

    這個有可能是跨網域的問題,您可以參考下面這篇MSDN文件說明嘗試利用裡面的兩個方法解決看看:

    http://msdn.microsoft.com/zh-cn/library/cc197955(VS.95).aspx


    2011年4月7日 12:13
  • 您好,我看过这样的解决方法,但是我想引用的是公共的web service,不是自己创建的web service,怎么进行这样的跨网域的处理呢?
    请大家多支持学生专区~~
    2011年4月7日 12:49
  • 你好,

    Silverlight 在默认情况下只允许源站点通信。想要实现跨域访问,则所访问的域服务必须明确允许跨域访问(如上连接文档所描述)。

    但你现在所访问的域服务不是你自己的,而且错误表明该服务没有允许跨域访问,所以你不能通过Silverlight直接访问该服务。

    解决方案是你自己创建一个自己的Web Services(Silverlight能访问的WebServices)去访问你想要访问的公共的Web service, 然后在用Silverlight去访问自己的WebServices。

    这样自己的Web Services就起到了中间桥接的作用。


    Daoping Liu - MSFT
    • 已标记为答案 doukooo 2011年4月12日 14:54
    2011年4月12日 3:34
    版主
  • thank you!好麻烦啊.....好的 先标记答案,我先研究研究,不懂再问~~
    请大家多支持学生专区~~
    2011年4月12日 14:28