我正在构建一个RIA域服务,需要在有大量数据的表上执行查询。 通过对此进行研究,我意识到表格大小可能会成为一个问题。504在RIA域服务中有很大的结果集
例如:
return this.ObjectContext.Logs;
失败,504 ERR,而:
return this.ObjectContext.Logs.Take(10);
作品。
正如您所看到的,我正在处理日志表,其中包含一个“用户名”字段。我需要从表中检索所有不同的用户名。所以我成立了这个方法:
public IEnumerable<string> GetUsers()
{
var users = (from l in this.ObjectContext.Logs
select l.Username).Distinct().Take(10);
return users;
}
我想执行的服务器端的所有必要的行动,以减少传输的信息(以及相对延迟)到最低程度。
但是,即使使用该查询,我也会得到504错误。在Fiddler中,我看到:“ReadResponse()失败:服务器没有为此请求返回响应。”
最初我认为这是一个传输问题(可能传输数据的大小太大或太大),所以我在“返回用户”上设置了一个断点。我运行了代码,调试器停在“返回用户”行。我点击了“结果视图”,但在那一点上它无法显示任何结果,只是显示错误。
我想在这里报告错误,但突然间Visual Studio不再停止在DomainService断点上,只停留在Silverlight项目的断点上。我实际上正在调查这件事,因为它似乎不再调用域服务(小提琴手不再显示任何对ria域服务的调用)。
有没有人可以帮助我解决这些问题?我真的很努力让这个工作。
在此先感谢, 干杯, 赞布罗塔
我会运行SQL事件探查了不同的用户名查询,以检查你的查询花费多长时间。如果时间太长,可能需要考虑该表上的索引。 – Rus 2011-03-29 13:15:08
确保Web项目设置为启动项目,并且RIA调试仍处于启用状态。 – 2011-03-29 13:45:14