【问题标题】:Consume WCF library in Silverlight 4 application在 Silverlight 4 应用程序中使用 WCF 库
【发布时间】:2012-05-01 01:15:39
【问题描述】:

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

'http://localhost:8732/Design_Time_Addresses/WCF/Service1/'。这 可能是因为试图

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

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

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

已发送。此错误也可能是由于在 web 中使用内部类型引起的 没有

的服务代理

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

详情。

从 wcf 返回结果时出现错误

我通过控制台、网站、win 表单使用了这​​个 wcf,它工作正常

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

  1. clientaccesspolicy.xml
  2. crossdomain.xml

【问题讨论】:

  • 注意:如果网站是您自己的,您只需要 clientaccesspolicy.xml 获取 Silverlight。 crossdomain.xml 允许与旧站点兼容,但不提供那么多选项。

标签: wcf silverlight silverlight-4.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

如果你看不到文件,silverlight 会一直抱怨,男孩会尽可能抱怨!

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-17
      • 1970-01-01
      相关资源
      最近更新 更多