首页 > Web开发 > 详细

Silverlight WCF "尝试向 URI发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略" 错误的解决方法

时间:2014-02-14 23:04:31      阅读:1169      评论:0      收藏:0      [点我收藏+]

项目很简单,一个网站,一个Silverlight项目,一个WCF项目。在 Silverlight 中调用 WCF 项目后,运行时会有如下错误:

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

 查了一些资料,最后解决方法如下。在 WCF 项目下添加一个 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>

问题搞定!

  

另补充WCF的调试方法

WCF多层结构的开发,与往常的单程序调试有所不同,总是由于通信导致调试的无法进行,搜了一下互联网,找到了这个办法,测试后发现可行。

WCFHOST(寄主)所在项目中右键->调试->启动新实例,开始调试服务端。

在客户端所在项目中右键->调试->启动新实例,开始调试客户端。

这样的话,不管在同一个解决方案中还是不同解决方案中都可以进行WCF的调试。

转载自 烟花易冷

http://blog.sina.com.cn/snow834732034

Silverlight WCF "尝试向 URI发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略" 错误的解决方法

原文:http://www.cnblogs.com/lyf681888/p/3549036.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!