在Silverlight 4应用程序中使用WCF库

时间:2012-04-19 13:49:33

标签: wcf silverlight silverlight-4.0

尝试向URI发出请求时出错:

  

的 'http://本地主机:8732 / Design_Time_Addresses / WCF /服务1 /'。这个   可能是因为试图

     

在没有正确的跨域的情况下以跨域方式访问服务   政策到位,或

     

不适合SOAP服务的策略。您可能需要联系   服务的所有者

     

发布跨域策略文件并确保它允许   与SOAP相关的HTTP标头

     

发送。使用Web中的内部类型也可能导致此错误   没有

的服务代理      

使用InternalsVisibleToAttribute属性。请看内心   更多的例外

     

的信息。

从wcf

返回结果时出现错误

我通过控制台,网站,win表格消耗了这个wcf并且它正常运行

我在WCF库中使用2个xml文件:

  1. clientaccesspolicy.xml
  2. 的crossdomain.xml

2 个答案:

答案 0 :(得分:1)

它曾经让我的大脑受伤。

我知道我需要这个文件:

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="SOAPAction">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

命名为clientaccesspolicy.xml

诀窍是必须在您的Web服务器的根目录。话虽这么说你需要能够浏览文件。在您的情况下位于:

http://localhost:8732/clientaccesspolicy.xml

如果你看不到文件,银光会一直抱怨,男孩会随时抱怨!

我应该指出我的政策文件不是限制性的,所以明智地使用它。

答案 1 :(得分:0)

哦,那个问题。除了跨域,你不能从VS2010运行调试器,这是我从localhost URL收集的。尝试在您的WCF所在的域或服务器上发布silverlight应用程序。例如,如果您的网络服务位于http://10.xx.xx.xx/sites/myWCF,请在http://10.xx.xx.xx/sites/MySilverlightApp上发布您的silverlight应用。您的调试器将以http://localhost:somePort运行,即使使用跨域策略文件也肯定会给您带来问题。除此之外,请确保为web.service配置文件是正确的。确保所有接口都有端点绑定,并且主服务位置上有一个主机(听起来很明显,但这是一个常见的错误)。