Я создаю доменную службу RIA, которая должна выполнять запросы к таблице с большим количеством данных.
Работая над этим, я понял, что размер таблицы может быть проблемой.
Например:
return this.ObjectContext.Logs;
завершается с ошибкой 504, тогда как:
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. Я на самом деле исследую это, так как кажется, что он больше не вызывает доменную службу (fiddler больше не показывает никаких вызовов к службе домена ria).
Есть ли кто-нибудь, кто может помочь мне в решении этих проблем? Я действительно изо всех сил пытаюсь заставить это работать.
Заранее спасибо,
Ура,
Джанлука