我有一个使用 RIA Services 1.0 SP1 的 Silverlight 4 应用程序。
在托管 Silverlight 应用程序的 Web 应用程序中,我有一些 RIA 服务和一个供其他消费者使用的纯 WCF 服务(不是 Silverlight 应用程序)。
RIA 服务正在尝试(但失败了)在 Silverlight 应用程序中生成客户端代理代码以调用 WCF 服务。我不需要从 Silverlight 调用该服务。
如何防止 RIA 服务为该服务生成客户端代码?
我有一个属性可以用来忽略该服务吗?
编辑
我假设 RIA 服务会尝试生成代理,但我不确定。这里有更多信息:
我有以下编译警告:
服务“MyNamespace.MyWcfService”的客户端代理生成失败:错误:地址“http://localhost/Service”处的端点“WSHttpBinding_SurveyCentreWcfService”与 Silverlight 4 不兼容。跳过...
我没有在我的 Silverlight 应用程序中手动添加任何服务引用,但在项目属性中设置了 WCF RIA 服务链接。
我的服务类如下所示:
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(Namespace = "http://www.xxx.com/services/")]
public class MyWcfService
{
...
}
最佳答案
据我所知,Ria 只从 DomainService 类生成代码。您的 WCF 服务是否继承自 DomainService?
这种听起来像是在 silverlight 端的代理代码生成器。 RIA 服务不需要网络引用。如果您在 silverlight 项目中有 Web 引用,请将其删除。
此外,您还可以在 build.log 文件中看到哪些代理生成工具正在查看哪些文件。它有点难以破译,但它可能有助于解决您的问题。
不太可能,但请确保没有在您的 silverlight 应用程序中的任何文件上设置自定义工具。
关于c# - 在 RIA 服务客户端代码生成中排除服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5347129/