我有一个Silverlight Ria Services应用程序,它公开了4种不同的域服务。一切都在本地机器上运行良好,但是当我部署到服务器时,我遇到了奇怪的错误。我决定导航到每项服务以确保它们正常运行。所有人都回复了标准服务页面,除了一个。这是我使用浏览器导航到服务时出现的错误:
名为“GetTagCount”的操作不符合所需的签名。返回类型必须是实体,实体集合或预定义的可序列化类型之一。
GetTagCount不返回实体,而是返回自定义对象。这是方法:
[Invoke]
public IEnumerable<TagCount> GetTagCount(long custodian)
{
var query =
from tag in this.ObjectContext.Tags
join docs in this.ObjectContext.TaggedDocuments.Where(d => d.CustodianId == custodian)
on tag.TagId equals docs.TagId
into tagGroup
orderby tagGroup.Count() descending
select new TagCount
{
TagId = tag.TagId,
TagDescription = tag.Description,
DocCount = tagGroup.Count(),
ImageId = tag.ImageId
};
return query;
}
TagCount类是一个包含4个公共属性的基本类。为什么这在Debug中工作而不在服务器上工作。更重要的是,我需要做些什么来解决它?
编辑:这是一个Silverlight 4.0应用
谢谢,
-Scott
答案 0 :(得分:1)
我发现了问题所在。我忘了我在我的开发机器上安装了Ria Services SP1 Beta,它增加了对复杂类型的支持。我还没有在生产服务器上安装Service Pack。一旦安装完毕,一切都会按原样运作。
我希望这有助于其他人...
-Scott