Silverlight和安全的WCF服务问题

时间:2011-05-26 19:18:28

标签: wcf security silverlight-4.0

我在Silverlight解决方案中定义了一个WCF服务项目。该解决方案包含三个项目。

  • MySilverLightApplication [the Silverlight app]
  • MySilverLightApplication.Web [网络 托管它的项目]
  • MyWCFService

我想在Silverlight应用程序和WCF服务之间建立安全连接,因此我通过编辑服务项目的web.config文件来启用服务端的wsHttpBinding,如下所示:

<services>
    <service name="ExternalWcfService.extService"
        behaviorConfiguration="ExternalWCF">
        <endpoint address="" binding="wsHttpBinding"
            contract="ExternalWcfService.IextService"/>
        <endpoint address="mex" binding="mexHttpBinding" 
            contract="IMetadataExchange"/>
    </service>
</services>

当我在SL客户端中添加对此服务的引用时,我在Silverlight应用程序的ServiceReferences.ClientConfig文件中没有输入。为什么会这样?然后当我运行应用程序时,我得到一个错误:

  

无法找到默认端点   引用合同的元素   'ExternalWCFService.IextService'中   ServiceModel客户端配置   部分。这可能是因为没有   找到了您的配置文件   应用程序,或因为没有端点   匹配此合同的元素可以   可以在客户端元素中找到。

我在Silverlight根文件夹中有silverlight.config个文件。为什么没有在SL项目中创建端点?

2 个答案:

答案 0 :(得分:0)

我认为您必须手动将生成的文件复制到Silverlight项目中。它应该在你的MyWCFService项目中。我记得以前必须这样做,但它不是同一件事,但它是一个标准的Web服务端点。

答案 1 :(得分:0)

我想我明白了。显然,Silverlight无法使用配置了wsHttpBinding的服务。它只需要是BasicHttpBinding!我将绑定更改为basic,并在更新引用时将我的端点添加到ServiceReferences.ClientConfig文件中。

奇怪!!!为什么Silverlight不支持通过网络进行编码?