消费在Silverlight 4应用WCF库(Consume WCF library in Silv

2019-10-16 14:33发布

而试图做出URI请求时出现错误:

的 'http://本地主机:8732 / Design_Time_Addresses / WCF /服务1 /'。 这可能是由于尝试

在跨域方式访问服务没有正确的跨域策略到位,或

政策是不合适的SOAP服务。 您可能需要联系服务的业主

发布一个跨域策略文件,并确保它允许SOAP有关的HTTP标头

发送。 此错误也可以通过在Web服务代理使用内部类型,而造成

使用InternalsVisibleToAttribute属性。 请参阅更多的内部异常

细节。

当结果从WCF返回出现错误

我消耗通过控制台,网站这个WCF,赢得形式和它工作正常

我使用的WCF库2个XML文件:

  1. clientaccesspolicy.xml
  2. crossdomain.xml的

Answer 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://本地主机:8732 / clientaccesspolicy.xml

如果你不能看到该文件Silverlight将总是抱怨男孩它抱怨时,它可以!

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



Answer 2:

呵呵,这个问题。 除了跨域,则不能运行从VS2010调试这就是我从本地主机URL收集。 尝试在域或服务器,你的WCF是上发布的Silverlight应用程序。 例如,如果您的Web服务是HTTP://10.xx.xx.xx/sites/myWCF ,发布到您的Silverlight应用程序的http://10.xx.xx.xx/sites/MySilverlightApp 。 你调试器会为运行HTTP://本地主机:somePort这肯定是要给你的问题,甚至有一个跨域策略文件。 除此之外,确保在您的web.service您的配置文件是正确的。 确保所有的接口都端点绑定,并有一个主机上的主要服务位置(听起来很明显,但它是一个常见的错误)。



文章来源: Consume WCF library in Silverlight 4 application