错误提示:
尝试请求 URI“http://www.XXX.com/PhotoWebService.asmx”时发生错误。这可能是因为在没有适当的跨域策略的情况下试图以跨域方式访问服务,或者是策略不适用于 SOAP 服务。您可能需要与服务所有者联系以发布跨域策略文件,确保策略允许发送与 SOAP 相关的 HTTP 头。请参阅内部异常以了解详细信息。
========================
解决办法
一,添加两个文件
Silverlight 2.0 支持两种不同的机制供服务选择跨域访问:
- 在承载服务的域的根目录中放置一个 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 >
![](https://i-blog.csdnimg.cn/blog_migrate/34031c708bfe702fe82d01ff5c6593aa.gif)
<? xml version="1.0" ?>
<! DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd " >
< cross-domain-policy >
< allow-http-request-headers-from domain ="*" headers ="*" />
</ cross-domain-policy >
并且修改了ServiceReferences.ClientConfig 中的
<endpoint address="http://localhost:3333/SilverlightApplication2/BlogService.asmx " binding="basicHttpBinding"
bindingConfiguration="BlogServiceSoap" contract="BlogService.BlogServiceSoap"
name="BlogServiceSoap" />
地址为我部署的域名。
终于搞定了。
汗啊,部署问题困扰了我好几天。