首页 / 软件开发 / WCF / 使用Silverlight的WCF模板问题
使用Silverlight的WCF模板问题2011-07-23 博客园 双宇环境配置:Silverlight 2 tools for visual studio 2008 sp1VSTS2008 +sp1 MSSQLSERVER2005启用 Silverlight 的 WCF 模板您可以通过在 Visual Studio? 中创新建一个 WCF 项目来构建可与 Silverlight 应用程序进行通信 的 WCF 服务。作为创建 WCF 服务的替代方法,您可以在 Visual Studio 中选择文件项目模板来创建启用 Silverlight 的 WCF 服务。 显示的是 Visual Studio 中的新项目模板。据说此模板会自动将绑定设置 为 basicHttpBinding 并添加一些属性,以使服务与 ASP.NET 兼容。尽管此方法可为您设置正确的绑定 配置,但不要忘记您仍可使用现有的 WCF 服务,但前提是这些绑定是针对 basicHttpBinding 设置的。只要 Silverlight 应用程序具有 basicHttpBinding 类型的绑定,它就可以调用标准的 WCF 服务。 您必须确保自己可将 WCF 服务的默认绑定从 customBinding 更改为 basicHttpBinding,否则必须新建 一个 basicHttpBinding 类型的绑定。WCF 服务宿主应用程序的 web.config 文件包含用来定义服务配置 的以下 XML。在我的VS2008英文版中,web.config 为WCF多配置了如下信息; <system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="wcf.WCFBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<customBinding>
<binding name="customBinding0">
</binding>
</customBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
<service behaviorConfiguration="wcf.WCFBehavior" name="wcf.WCF">
<endpoint address="" binding="customBinding" bindingConfiguration="customBinding0"
contract="wcf.WCF" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
不知道是不是英文版的缘故,<customBinding>应该默认是<basicHttpBinding>,在一些 国外的论坛上发现了同样的问题,而且,关键问题是在客户端的ServiceReferences.ClientConfig文件中,只有 </configuration>.这样容易出现“关键字不在数据字典中的问题”,这个问题很明显