积极答复者
Silverlight如何引用公共web service

问题
-
如题,silverlight可以引用公共的web service吗?
引用的时候都会出一个错误:尝试向 URI“http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。有关详细信息,请参阅内部异常。
那引用的时候应该怎么引用呢?在代码中动态引用吗?
请大家多支持学生专区~~
答案
-
你好,
Silverlight 在默认情况下只允许源站点通信。想要实现跨域访问,则所访问的域服务必须明确允许跨域访问(如上连接文档所描述)。
但你现在所访问的域服务不是你自己的,而且错误表明该服务没有允许跨域访问,所以你不能通过Silverlight直接访问该服务。
解决方案是你自己创建一个自己的Web Services(Silverlight能访问的WebServices)去访问你想要访问的公共的Web service, 然后在用Silverlight去访问自己的WebServices。
这样自己的Web Services就起到了中间桥接的作用。
Daoping Liu - MSFT- 已标记为答案 doukooo 2011年4月12日 14:54
全部回复
-
您好,
這個有可能是跨網域的問題,您可以參考下面這篇MSDN文件說明嘗試利用裡面的兩個方法解決看看:
http://msdn.microsoft.com/zh-cn/library/cc197955(VS.95).aspx
-
你好,
Silverlight 在默认情况下只允许源站点通信。想要实现跨域访问,则所访问的域服务必须明确允许跨域访问(如上连接文档所描述)。
但你现在所访问的域服务不是你自己的,而且错误表明该服务没有允许跨域访问,所以你不能通过Silverlight直接访问该服务。
解决方案是你自己创建一个自己的Web Services(Silverlight能访问的WebServices)去访问你想要访问的公共的Web service, 然后在用Silverlight去访问自己的WebServices。
这样自己的Web Services就起到了中间桥接的作用。
Daoping Liu - MSFT- 已标记为答案 doukooo 2011年4月12日 14:54