2011-01-20 80 views
0

我有一个Silverlight Ria服务应用程序,公开4个不同的域服务。在本地机器上一切正常,但是当我部署到服务器时,出现了奇怪的错误。我决定导航到每项服务,以确保他们能够正常工作。他们都用标准服务页面进行了回应,除了一个。这是我在浏览器导航到服务时遇到的错误:Silverlight Ria服务服务错误 - 但只有在生产

名为'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的应用程序

感谢,

斯科特

回答

1

我发现了什么问题了。我忘了我在我的开发机器上安装了Ria Services SP1 Beta,它增加了对复杂类型的支持。我还没有在生产服务器上安装Service Pack。一旦安装完毕,所有的工作都应该如此。

我希望这可以帮助别人......

斯科特