Silverlight调用WebService时出现的跨域方式访问服务

来源:互联网 发布:手机挂机赚钱软件 编辑:程序博客网 时间:2024/04/30 14:57

最近在项目中发现Silverlight调用WebService全出现一个跨域方式访问异常,异常信息如下:

 

“这可能是因为在没有适当的跨域策略的情况下试图以跨域方式访问服务,或者是策略不适用于 SOAP 服务。您可能需要与服务所有者联系以发布跨域策略文件,确保策略允许发送与 SOAP 相关的 HTTP 头。请参阅内部异常以了解详细信息。”

 

发现这个问题,一直在虚拟目录下面的东东,尝试了各种方法,因为我的网站下面有很多子网站,所以在这现在部署WebService都是在默认网站下添加的虚拟目录,或是应用程序。


在GOOGLE的过程发现,大部分是需要加一个XML文件,clientaccesspolicy.xml,文件格式什么之类的就不在这里说了。有说要加到webservice所在的目录下,也有说要加在根目录下。我尝试了一下还是不行。我的默认网站和虚拟目录都不在一个目录下,我后来也尝试了将项目COPY到网站的目录下,还是不行。后到搜到一篇文章说,可能是因为虚拟目录的问题,我尝试新建一个网站,使用了另一个端口。然后将clientaccesspolicy.xml文件放到根目录下就可以了。然后使用IP加端口的方式访问,不过因为服务器的系统是SERVER 2008的,IIS是7.0的,在本机可以打开,但是在外网的机器却打不开。查了半天,后来发现是操作系统的防火墙过滤了端口的原因,无语,一通设置后,就可以使用IP加端口访问了。

图就不上了。麻烦。

原创粉丝点击