2010-12-15 6 views
2

Каким-либо гуру служб RIA, кто-нибудь знает, как увеличить размер потолка данных для данных данных RIA Services, возвращающихся к клиенту Silverlight?Как увеличить размер буфера размера буфера запросов RIA Services?

У меня есть запрос служб RIA, где он возвращает родительский объект вместе с довольно несколькими дочерними сущностями, возвращающимися как часть ответа на данные. Код для моего запроса RIA Services начинается так:

 
    1: [EnableClientAccess()] 
    2: public class ContactsDomainService : LinqToEntitiesDomainService 
    3: { 
    4:  [Query(ResultLimit = 150)] 
    5:  public IQueryable SearchContacts(string jobFunction = default(string), 
    6:             string workPhone = default(string), 
    7:             string officeLocation = default(string), 
    8:             string firstName = default(string), 
    9:             string lastName = default(string), 
    10:             string address1 = default(string), 
    11:             string address2 = default(string), 
    12:             string city = default(string), 
    13:             int stateTypeId = 0, 
    14:             string zip = default(string), 
    15:             string email = default(string), 
    16:             Nullable departmentTypeId = null, 
    17:             Nullable sectionTypeId = null, 
    18:             Nullable divisionTypeId = null, 
    19:             Nullable governmentTypeId = null) 
    20:  { 
    21:   var results = from r in this.ObjectContext.Contacts 
    22:          .Include("ContactAddresses") 
    23:          .Include("ContactAddresses.CityType") 
    24:          .Include("ContactAddresses.StateType") 
    25:          .Include("ContactDepartments") 
    26:          .Include("ContactDepartments.DepartmentType") 
    27:          .Include("ContactDivisions") 
    28:          .Include("ContactDivisions.DivisionType") 
    29:          .Include("ContactEmails") 
    30:          .Include("ContactGovernments") 
    31:          .Include("ContactGovernments.GovernmentType") 
    32:          .Include("ContactJobFunctions") 
    33:          .Include("ContactJobFunctions.JobFunctionType") 
    34:          .Include("ContactOffices") 
    35:          .Include("ContactPhones") 
    36:          .Include("ContactPhones.PhoneType") 
    37:          .Include("ContactSections") 
    38:          .Include("ContactSections.SectionType") 
    39:       select r; 

Я подтвердил через тестирование, что [Query (ResultLimit = 150)] декоратор вызовет общий запрос RIA Services, Поиск Контактов(), чтобы потерпеть неудачу и бросок и исключение, если вы увеличите 150 до 500. Я предполагаю, что я попал в общее ограничение данных служб RIA.

Я немного искал эту проблему, и вы можете увеличить размер буфера данных веб-службы WCF (обратите внимание на службу WCF, а не службу RIA), отредактировав настройки веб-конфигурации, но не уверен, также работают в запросе служб RIA.

Если кто-то столкнулся с той же проблемой и нашел разрешение, ответьте.

заранее спасибо, Джон

ответ

1
+0

Гена, спасибо за ссылку ... что сделал трюк! Кажется немного странным, что Microsoft не точно рекламирует, как это сделать ... было бы неплохо, если бы они, по крайней мере, добавили в комментарий web.config пример, показывающий, как увеличить размер буфера. –

0

Я предполагаю, что ошибка поднимается с сервера?

Или вы сталкиваетесь с накладными расходами на клиенте? У меня не было различимого ограничения размера буфера на клиенте (хотя я уверен, что они есть).

Вам необходимо увеличить размер буфера для служб WCF при транспортировке большого количества данных. У меня нет конкретной ссылки, доступной прямо сейчас, но выполните поиск в размере буфера web.config WCF, и вы должны придумать некоторые хиты.

Хорошо, что он генерирует этот путь, поскольку вы, вероятно, не хотите открывать проблему с пропускной способностью из-за восстановления данных при генерации. Хотя я помню, что мне было трудно найти информацию, когда я впервые ее поддержал.

Смежные вопросы