Silverlight 中的 WCF 支持问题与嵌入在 Silverlight 插件中的 .NET Framework 的有限子集有关,因为它本质上是 .NET Framework 的缩小版本。由于 Silverlight 插件中缩减了 .NET 运行时,它对 WCF 的完全支持与您从标准 .NET 项目中获得的完全不同。这样做是为了从客户的角度快速下载 SL,并增加 SL 作为产品的上市时间。请记住,SL 插件不依赖于正在安装的现有 .NET 框架,这就是市场上有 Linux、Windows Phone 7 和 OS X 版本的原因。
随着时间的推移,他们继续添加按需功能。例如,Silverlight 5 将支持 WS-Trust(请参阅此处以获取 5 中新功能的完整列表)。
我建议您阅读此资源,以了解通过尝试从客户端调用 WCF 服务可能会错过什么:
http://msdn.microsoft.com/en-us/library/cc896571(v=vs.95).aspx
请记住,您可以很容易地通过 RIA 服务端点代理对更复杂 WCF 服务的调用,这些端点实际上直接从服务器端调用服务。
至于使用标准 WCF 而不是 RIA ...当您的中间层有多种客户端类型时会有优势,尽管使用 RIA 您可以简单地将端点公开为 SOAP 1.1 端点并要求人们使用该范例而不是 WCF 进行连接。您不必使用 RIA 或什么都不用;您可以混合搭配以满足您认为合适的要求。就我个人而言,如果可能的话,我很喜欢使用 RIA。