我在Silverlight解决方案中定义了一个WCF服务项目。该解决方案包含三个项目。
我想在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项目中创建端点?
答案 0 :(得分:0)
我认为您必须手动将生成的文件复制到Silverlight项目中。它应该在你的MyWCFService项目中。我记得以前必须这样做,但它不是同一件事,但它是一个标准的Web服务端点。
答案 1 :(得分:0)
我想我明白了。显然,Silverlight无法使用配置了wsHttpBinding的服务。它只需要是BasicHttpBinding!我将绑定更改为basic,并在更新引用时将我的端点添加到ServiceReferences.ClientConfig文件中。
奇怪!!!为什么Silverlight不支持通过网络进行编码?